![](/img/trans.png)
[英]List<?> list = new ArrayList<String>(); List<? extends Object> list = new ArrayList<String>();
[英]Java: List<List<String>> list = new ArrayList<>();
如何將包含相同確切值的列表中的所有列表分組。
List<List<String>> list = new ArrayList<>();
此列表包含list1 list2 list3等。。。如果沒有對list3.get(0)等進行檢查,我想查找list1.get(0)是否與list2.get(0)相同。如果我在每個列表中找到相同的值,則需要對列表進行分組。 例如,如果為true,則將list1和list3以及其他發現的添加到
List<List<String>> list2 = new ArrayList<>();
現在使用list2.get(0)檢查是否等於其他(如果是)將它們分組並將其添加到注釋器中:
List<List<String>> list3 = new ArrayList<>();
我到目前為止所取得的成就:
private static void findEqualLists(List<List<String>> list) {
int i = 0;
for (List<String> list1 : list) {
if (!Collections.disjoint(list1, list.get(i))) {
System.out.println(list1.get(0)+list.get(i).get(0));
}else{
System.out.println(list1.get(0)+list.get(i).get(0));
}
i++;
}
}
價值范例:
list = {{2017-02,jhon,car},{2017-03,maria,car},{2017-03, boy, car}, {2017-01,arya, car}, {2017-02, girl, car}}
輸出:
Group1:
2017-03,maria,car
2017-03, boy, car
Group2:
2017-02,jhon,car
2017-02, girl, car
Group3
2017-01,arya, car
private static Map<String, List<List<String>>>
findEqualLists(List<List<String>> list) {
return list.stream().collect(Collectors.groupingBy(l -> l.get(0)));
}
返回的Map將使用l.get(0)
作為唯一鍵,每個對應的值僅是那些第一個元素與該鍵匹配的List的List。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.