Java:List<;列表<;字符串>&燃气轮机;列表=新阵列列表<&燃气轮机;();

Java:List<;列表<;字符串>&燃气轮机;列表=新阵列列表<&燃气轮机;();,java,arrays,list,Java,Arrays,List,如何在包含相同精确值的列表中对所有列表进行分组 List<List<String>> list = new ArrayList<>(); 输出: Group1: 2017-03,maria,car 2017-03, boy, car Group2: 2017-02,jhon,car 2017-02, girl, car Group3 2017-01,arya, car 你想要: 私有静态映射 FindEqualists(列表){ return list

如何在包含相同精确值的列表中对所有列表进行分组

List<List<String>> list = new ArrayList<>();
输出:

Group1:
2017-03,maria,car
2017-03, boy, car

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

Group3
2017-01,arya, car
你想要:

私有静态映射
FindEqualists(列表){
return list.stream().collect(Collectors.groupingBy(l->l.get(0));
}
返回的映射将使用
l.get(0)
作为唯一键,每个对应的值仅为第一个元素与该键匹配的列表的列表。

您想要:

私有静态映射
FindEqualists(列表){
return list.stream().collect(Collectors.groupingBy(l->l.get(0));
}

返回的映射将使用
l.get(0)
作为唯一键,每个对应的值都是仅第一个元素与该键匹配的列表的列表。

1。问题是什么?2.“分组”列表意味着什么?3.与其谈论你在做什么,不如讨论一下你想实现什么。我想通过给值“相似”和“分组”没有很好的定义来实现超越:你是否只按日期“分组”?再说一遍,“分组”是什么意思?“我想通过赋予价值实现超越”——请你翻译一下好吗?:-)1.问题是什么?2.“分组”列表意味着什么?3.与其谈论你在做什么,不如讨论一下你想实现什么。我想通过给值“相似”和“分组”没有很好的定义来实现超越:你是否只按日期“分组”?再说一遍,“分组”是什么意思?“我想通过赋予价值实现超越”——请你翻译一下好吗?:-)我如何能够像上面所示输出返回的映射?@D1调用映射的
values()
方法。您可以直接打印返回的集合,或者,如果您想要大括号(
{
})而不是大括号(
[
]
),您可以在集合中循环并自己构建字符串。是的,我知道我可以使用values()方法,但如何将其划分为组并单独打印呢?我的意思是,一个键现在有多个值,我是否需要遍历每个键,然后遍历该键列表以获取该键的值?@D1的一个键有多个值,因为原始列表中有多个条目,例如以“2017-03”开头。您不需要遍历键;您可以简单地迭代
values()
,它已经被划分为多个组。映射的全部要点是,
values()
的每个成员恰好对应一个键。是的,它将被分割,但我不知道你如何知道该组何时结束,另一组何时开始形成?我如何能够像上面所示输出返回的映射?@D1调用映射的
values()
方法。您可以直接打印返回的集合,或者,如果您想要大括号(
{
})而不是大括号(
[
]
),您可以在集合中循环并自己构建字符串。是的,我知道我可以使用values()方法,但如何将其划分为组并单独打印呢?我的意思是,一个键现在有多个值,我是否需要遍历每个键,然后遍历该键列表以获取该键的值?@D1的一个键有多个值,因为原始列表中有多个条目,例如以“2017-03”开头。您不需要遍历键;您可以简单地迭代
values()
,它已经被划分为多个组。映射的全部要点是,
values()
的每个成员恰好对应一个键。是的,它将被分割,但我不明白,你怎么知道该组何时结束,另一组何时开始形成?
   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)));
}