カスタムクラス型を持つ、List同士の比較について解説します。
スポンサーリンク
今回の目的
クラスAとクラスBのリスト同士を比較し、一致する値を持つデータを抽出する
テスト環境
テスト環境は下記
| 項目 | 内容 |
|---|---|
| Javaバージョン | 21 |
処理実装
- リスト同士の色コードを比較
- 一致する色コードを抽出
- リスト化して結果出力
Java
// import省略
public static void Main(String args[]) {
// クラスAのリスト
List<ClassA> listA = new ArrayList<>();
listA.add(new ClassA("red", "#ff0000"));
listA.add(new ClassA("blue", "#0000ff"));
listA.add(new ClassA("green", "#00ff00"));
// クラスBのリスト
List<ClassB> listB = new ArrayList<>();
listB.add(new ClassB("Yamada", "#ff0000"));
listB.add(new ClassB("Koyama", "#0000ff"));
listB.add(new ClassB("Sato", "#000000"));
// 色コードが一致するものを取得
var result = listA.stream()
.filter(x -> listB.stream()
.anyMatch(y -> y.getColorCode() == x.getColorCode()))
.map(x -> x.getColorCode())
.toList();
result.forEach(x -> System.out.println(x));
// 結果
// >> #ff0000
// >> #0000ff
}Java
// import省略
public class ClassA {
private String colorName; // 色名
private String colorCode; // 色コード
public ClassA(String colorName, String colorCode) {
setColorName(colorName);
setColorCode(colorCode);
}
// getter, setterメソッド...
}Java
// import省略
public class ClassB {
private String name; // 名前
private String colorCode; // 色コード
public ClassB(String name, String colorCode) {
setName(name);
setColorCode(colorCode);
}
// getter, setterメソッド...
}スポンサーリンク

