4
让我们说我们有一个对象抽奖:的Java 8 groupingBy列表
class Draw {
private int num1, num2, num3;
public Draw (int num1, int num2, int num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
public int getNum3() {
return num3;
}
public void setNum3(int num3) {
this.num3 = num3;
}
public List<Integer> getResultAsList() {
return Arrays.asList(num1, num2, num3);
}
}
现在,有绘制的名单,我需要一个地图,其中关键是在画一些与值是一个计数(这个数字是多少次绘制)
例如,具有
List<Draw> drawList = Arrays.asList(new Draw(1,2,5), new Draw(1,5,6));
我希望得到一个地图l ike如下:{1 = 2,2 = 1,5 = 2,6 = 1}
我可以使用java 8的新分组操作或其他新功能来实现此操作吗?
谢谢。
感谢Eugenre。代码不可编译。我得到“不能推断类型参数为 flatMap(功能<?超T ,?延伸流 extends R>>)” –
EasyRider
@ user1712442这很有趣,它编译对我来说很好用'javac' – Eugene
我使用Eclipse霓虹灯。但我发现做它的方式编译:{地图<为Integer,Long>地图= drawList \t \t \t .stream() \t \t \t .flatMap(X - > x.getResultAsList()流()。) \t \t \t .collect(Collectors.groupingBy(Function.identity(),Collectors.counting())); \t \t \t \t System.out.println(map);} – EasyRider