首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java: List<List<String>> list =新ArrayList<>();

Java: List<List<String>> list =新ArrayList<>();
EN

Stack Overflow用户
提问于 2017-10-25 16:46:44
回答 1查看 7.9K关注 0票数 0

如何将包含相同确切值的列表中的所有列表分组。

代码语言:javascript
复制
List<List<String>> list = new ArrayList<>();

这个列表包含list1,list2,list3等.我希望找到list1.get(0)是否与list2.get(0)相同,如果没有检查list3.get(0)等等.稍后,如果在每个列表中找到相同的值,则需要对列表进行分组。例如,如果为true添加list1和list3以及其他

代码语言:javascript
复制
  List<List<String>> list2 = new ArrayList<>();

现在使用list2.get(0)检查,如果等于其他,如果是,对它们进行分组,并将它们添加到anoter:

代码语言:javascript
复制
   List<List<String>> list3 = new ArrayList<>();

到目前为止,我所取得的成就:

代码语言:javascript
复制
    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++;
    }
}

价值除数:

代码语言:javascript
复制
list = {{2017-02,jhon,car},{2017-03,maria,car},{2017-03, boy, car}, {2017-01,arya, car}, {2017-02, girl, car}}

输出:

代码语言:javascript
复制
Group1:
2017-03,maria,car
2017-03, boy, car

Group2:
2017-02,jhon,car
2017-02, girl, car

Group3
2017-01,arya, car
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 17:07:52

你想要Collectors.groupingBy

代码语言:javascript
复制
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)作为唯一的键,每个对应的值都是一个列表,其中只有第一个元素与该键匹配的列表。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46937915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档