一般社団法人 全国個人事業主支援協会

COLUMN コラム

参照型変数の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年用に新バットを購入。

三重管構造により、初速の早い打球が飛ぶ。

打感もよい。短距離、中距離バッター向きな一品。

The following two tabs change content below.

S, M

最新記事 by S, M (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア