Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 映射到映射_Java_Dictionary_Java 8_Java Stream - Fatal编程技术网

Java 映射到映射

Java 映射到映射,java,dictionary,java-8,java-stream,Java,Dictionary,Java 8,Java Stream,我有一门接口课程和一门课堂课程 首先,我尝试将CourseCLS对象按相同的数字分组。我不确定它是否正确 Map<Integer, List<CourseCLS>> first = courses.values().stream() .collect(Collectors.groupingBy(c -> c.getNumber())); 由于CourseCLS实现了Course,所以您只需使用Course作为值创建一个新映射

我有一门接口课程和一门课堂课程

首先,我尝试将CourseCLS对象按相同的数字分组。我不确定它是否正确

Map<Integer, List<CourseCLS>> first =
        courses.values().stream()
            .collect(Collectors.groupingBy(c -> c.getNumber()));

由于CourseCLS实现了Course,所以您只需使用Course作为值创建一个新映射,它将接受Course接口的任何实例,因此也将接受CourseCLS。
因此,通过您的第一个映射,将每个K,V对添加到结果映射中

,因为CourseCLS实现了Course,您只需使用Course作为值创建一个新映射,它将接受Course接口的任何实例,因此将接受CourseCLS。
因此,检查您的第一个映射,并将每个K,V对添加到结果映射中

您正试图解决一个不存在的问题。只要写

Map<Integer, List<Course>> first =
    courses.values().stream()
        .collect(Collectors.groupingBy(c -> c.getNumber()));

由于groupingBy允许下游收集器收集比其自身收集范围更广的类型,因此可以将收集课程实例的toList收集器与收集课程实例的groupingBy收集器组合。Java 8的类型推断检测此构造的有效性。

您试图解决一个不存在的问题。只要写

Map<Integer, List<Course>> first =
    courses.values().stream()
        .collect(Collectors.groupingBy(c -> c.getNumber()));

由于groupingBy允许下游收集器收集比其自身收集范围更广的类型,因此可以将收集课程实例的toList收集器与收集课程实例的groupingBy收集器组合。Java 8的类型推断检测这个构造的有效性。

你能准确地编写代码吗?我试过了,但没用。先映射,然后这样做:Map second=newhashmap;第一。foreach第二:putIfAbsent;这将把第一个的每K,V添加到第二个中,而不需要替换键。您能准确地编写代码吗?我试过了,但没用。先映射,然后这样做:Map second=newhashmap;第一。foreach第二:putIfAbsent;这会将第一个的每一个K,V添加到第二个中,而不需要替换键。您可以强制转换它,尽管您会收到警告。但是为什么不先声明为需要返回的类型呢?课程没有getNumber吗?你在用地图做其他事情吗?尽管你会得到警告,你还是可以投下它。但是为什么不先声明为需要返回的类型呢?课程没有getNumber吗?你在用地图做其他事情吗?
Map<Integer, List<Course>> first =
    courses.values().stream()
        .collect(Collectors.groupingBy(c -> c.getNumber(), Collectors.toList()));