Java リスト内の重複要素を除外して結合する方法

Javaでリスト内の重複要素を除外して結合する方法です。

Java リスト内の重複要素を除外して結合する方法

Javaで2つのリストを結合したかったんだけど、内部の重複要素を除外して結合できないものかと調べていたら、「Stream.concat()」と「distinct()」を組み合わせることでうまくできたので備忘録として残しておきます。

ここでは Javaでリスト内の重複要素を除外して結合する方法 を紹介します。


リスト内の重複要素を除外して結合する

コードは、文字列のリストと数値のリストで検証しました。

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

/**
 * Javaでリスト内の重複要素を除外して結合する方法
 */
public class ListJoinExclDupliElems {
  public static void main(String[] args) {
    // 文字列リスト
    List<String> strList1 = Arrays.asList("hoge", "piyo", "fuga", "foo", "saka");
    List<String> strList2 = Arrays.asList("hoge", "piyo", "fuga", "foo");
    // Stream を使用して Java リストを結合する
    List<String> newStrList = Stream.concat( strList1.stream(), strList2.stream() )
    .distinct() // 重複の除外
    .collect( Collectors.toList() );
    System.out.println(newStrList); //[hoge, piyo, fuga, foo, saka]

    // 数値リスト
    List<Integer> intList1 = Arrays.asList(6, 5, 4, 3, 2, 1);
    List<Integer> intList2 = Arrays.asList(1, 2, 3, 4, 5);
    // Stream を使用して Java リストを結合する
    List<Integer> newIntList = Stream.concat( intList1.stream(), intList2.stream() )
    .distinct() // 重複の除外
    .sorted(Comparator.naturalOrder()) // 昇順
    .collect( Collectors.toList() );
    System.out.println(newIntList); //[1, 2, 3, 4, 5, 6]
  }
}

うーむ、簡単で便利だー!

まとめ

Javaでリスト内の重複要素を除外して結合する方法を紹介しました。

めちゃめちゃ簡単で使いやすいので、皆さんもぜひ使ってみてください。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。