「Java17」Streamクラスのdistinctメソッドでリストの重複要素を除外する

2022年6月28日

環境

Spring Tool Suite 4
JavaSE17

関数
1.Stream<T> distinct()
このストリームの重複を除いた要素(Object.equals(Object)による)から構成されるストリームを返します。順序付けされたストリームの場合、重複のない要素の選択は安定しています
2.public interface Collector<T,​A,​R>
可変結果コンテナに入力要素を蓄積し、オプションですべての入力要素が処理された後で蓄積された結果を最終的な表現に変換する可変リダクション操作。
型パラメータ:

T - リダクション操作の入力要素の型
A - リダクション操作の可変蓄積の型(通常は実装詳細として隠蔽される)
R - リダクション操作の結果の型

使用例

package com.arkgame.study;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListEleDemo {

      // 文字列リスト cityLstA
      static List<String> cityLstA = Arrays.asList("東京", "大阪", "福岡", "横浜", "川崎");
      // 文字列リスト cityLstB
      static List<String> cityLstB = Arrays.asList("東京", "大阪", "福岡", "宮崎");

      public static void main(String[] args) {

            // Streamのconcatメソッドを使用する
            List<String> resLst = Stream.concat(cityLstA.stream(), cityLstB.stream()).distinct()
                        .collect(Collectors.toList());
            System.out.println("リストの重複要素を除外して結合する結果:" + resLst);

      }

}

実行結果

リストの重複要素を除外して結合する結果:[東京, 大阪, 福岡, 横浜, 川崎, 宮崎]

 

Java

Posted by arkgame