如何将包含相同确切值的列表中的所有列表分组。
List<List<String>> list = new ArrayList<>();这个列表包含list1,list2,list3等.我希望找到list1.get(0)是否与list2.get(0)相同,如果没有检查list3.get(0)等等.稍后,如果在每个列表中找到相同的值,则需要对列表进行分组。例如,如果为true添加list1和list3以及其他
List<List<String>> list2 = new ArrayList<>();现在使用list2.get(0)检查,如果等于其他,如果是,对它们进行分组,并将它们添加到anoter:
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发布于 2017-10-25 17:07:52
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)作为唯一的键,每个对应的值都是一个列表,其中只有第一个元素与该键匹配的列表。
https://stackoverflow.com/questions/46937915
复制相似问题