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