menu
書いてる野郎
orebike@gmail.com
共通条件を設定してコレクション同士の共通要素を集める場合。
List<Piyo> piyoList1 = new ArrayList<>(); List<Piyo> piyoList2 = new ArrayList<>(); piyoList1.add(new Piyo("a")); piyoList1.add(new Piyo("b")); piyoList1.add(new Piyo("c")); piyoList1.add(new Piyo("d")); piyoList1.add(new Piyo("e")); piyoList2.add(new Piyo("c")); piyoList2.add(new Piyo("d")); piyoList2.add(new Piyo("e")); piyoList2.add(new Piyo("f")); piyoList2.add(new Piyo("g")); List piyoListIntersection = piyoList1.stream().filter( p1 -> { return piyoList2.stream().anyMatch( p2 -> { return p1.getV1().equals(p2.getV1()); }); }).collect(Collectors.toList()); for (Piyo piyo : piyoListIntersection) { System.out.println(piyo.getV1()); // => c d e }
このようになる。やや丁寧に書いているが、短く書けば一行で書ける。