小编Ant*_*let的帖子

Java 8 GroupingBy与对象上的收集器

我想流式传输一个对象集合,myClass以便使用它进行分组Collectors.groupingBy().但是,Map<String, List<myClass>>我想将它分组在一个对象上myOutput并检索一个,而不是检索一个Map<String, myOutput>.我试图创建一个自定义收集器:

List<myClass> myList = new ArrayList<myClass>();
myList.add(new myClass("a", 1));
myList.add(new myClass("a", 2));
myList.add(new myClass("b", 3));
myList.add(new myClass("b", 4));

Map<String,myOutput> myMap = myList.stream().collect(Collectors.groupingBy(myClass::getA, Collectors.of(myOutput::new, myOutput::accept, myOutput::combine)));
Run Code Online (Sandbox Code Playgroud)

我的课 :

protected String a;
protected int b;

public myClass(String aA, int aB)
{
  a = aA;
  b = aB;
}

public String getA()
{
  return a;
}

public int getB()
{
  return b;
}
Run Code Online (Sandbox Code Playgroud)

myOutput:

protected int i;

public myOutput()
{
  i …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream collectors

5
推荐指数
1
解决办法
2284
查看次数

标签 统计

collectors ×1

java ×1

java-8 ×1

java-stream ×1