Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Java8流API:将列表分组到自定义类中_Java_Java 8_Java Stream - Fatal编程技术网

Java8流API:将列表分组到自定义类中

Java8流API:将列表分组到自定义类中,java,java-8,java-stream,Java,Java 8,Java Stream,我正试图通过Java8的流API构建一个自定义类实例 public class Foo { Group group; // other properties public Group getGroup() { return this.group; } public enum Group { /* ... */ }; } public class FooModel { private Foo.Group group; private List&

我正试图通过Java8的流API构建一个自定义类实例

public class Foo {
    Group group;
    // other properties

    public Group getGroup() { return this.group; }

    public enum Group { /* ... */ };
}

public class FooModel {
    private Foo.Group group;
    private List<Foo> foos;

    // Getter/Setter
}

...

List<Foo> inputList = getFromSomewhere();

List<FooModel> outputList = inputList
    .stream()
    .collect(Collectors.groupingBy(Foo::getGroup,
                                   ???));
公共类Foo{
组;
//其他属性
公共组getGroup(){返回this.Group;}
公共枚举组{/*…*/};
}
公共类模型{
私人食品集团;
私人名单;
//吸气剂/塞特
}
...
List inputList=getfromwhere();
列表输出列表=输入列表
.stream()
.collect(收集器).groupingBy(Foo::getGroup,
???));
但是我不知道下游的
收集器必须是什么样子的。

我必须自己实现一个
收集器吗(我不这么认为),或者这可以通过组合
收集器来实现。
调用吗?

您正在寻找这样的东西:

List<FooModel> outputList = inputList
    .stream()
    .collect(Collectors.groupingBy(Foo::getGroup))// create Map<Foo.Group,List<Foo>>
.entrySet().stream() // go through entry set to create FooModel
.map(
entry-> new FooModel (
entry.getKey(),
entry.getValue()
)
).collect(Collectors.toList());
List outputList=inputList
.stream()
.collect(Collectors.groupingBy(Foo::getGroup))//创建映射
.entrySet().stream()//通过条目集创建FooModel
.地图(
条目->新模型(
entry.getKey(),
entry.getValue()
)
).collect(Collectors.toList());

为什么要分组?你想要什么结果?你能发布一个输入/输出的例子吗?我真的没有在重读三遍后得到这个问题。你介意更具体一点吗?