参照型変数のCollectionに対して
ある集合単位での数量、合計などを処理するための
Java Stream API。
例)
Itemクラス
・name(string) = 商品名
・price(int)=単価
と定義
Item i1 = new Item()
i1.name = “リンゴ”
i1.price = 100
Item i2 = new Item()
i2.name = “リンゴ”
i2.price = 200
Item i3 = new Item()
i3.name = “リンゴ”
i3.price = 300
Item i4 = new Item()
i4.name = “みかん”
i4.price = 100
Item i5 = new Item()
i5.name = “バナナ”
i5.price = 100
i1~i5をList型コレクション変数(items)に格納
◆name単位での個数
var counts = items.stream().collect(Collectors.groupingBy(Item::getName, Collectors.counting()));
counts.entrySet().stream().map(e -> e.getKey() + “=” + e.getValue()).forEach(System.out::println);
—
リンゴ=3
みかん=1
バナナ=1
—
◆name単位での最大料金
var maxs = items.stream().collect(Collectors.groupingBy(Item::getName, Collectors.maxBy(Comparator.comparingInt(Item::getValue))));
maxs.entrySet().stream().map(e -> e.getKey() + “=” + e.getValue().get().getValue()).forEach(System.out::println);
—
リンゴ=300
みかん=100
バナナ=100
—
※趣味の記事
2020年用に新バットを購入。
三重管構造により、初速の早い打球が飛ぶ。
打感もよい。短距離、中距離バッター向きな一品。