【Java】streamでListの重複削除

はじめに

お世話にになります、hosochinです
JavaでListの重複を削除する方法について載せときます
streamのdistinct使うのが良さそうです

実装

List<String> list = Arrays.asList("A", "B", "C", "A");

// ["A", "B", "C"] になる
list.stream().distinct().collect(Collectors.toList());
List<MyObj> list = Arrays.asList(
        new MyObj(1, "Ichiro"),
        new MyObj(2, "Jiro"),
        new MyObj(3, "Sabro"),
        new MyObj(1, "Ichiro")
);

// [(1, "Ichiro"), (2, "Jiro"), (3, "Sabro")] になる
list.stream().distinct().collect(Collectors.toList());
  • MyObjクラス
  • Equalsメソッドを実装する必要あり
    • lombokのEqualsAndHashCodeを付与
@RequiredArgsConstructor
@EqualsAndHashCode
public class MyObj {
    private final Integer id;
    private final String name;
}

技術Java

Posted by hosochin