Java 8 ラムダでリストから要素を取得して削除する 質問する

Java 8 ラムダでリストから要素を取得して削除する 質問する

要素のリストが与えられたら、指定されたプロパティを持つ要素を取得したいそしてリストから削除します。私が見つけた最善の解決策は次のとおりです。

ProducerDTO p = producersProcedureActive
                .stream()
                .filter(producer -> producer.getPod().equals(pod))
                .findFirst()
                .get();
producersProcedureActive.remove(p);

ラムダ式で get と remove を組み合わせることは可能ですか?

ベストアンサー1

リストから要素を削除するには

objectA.removeIf(x -> conditions);

例えば:

objectA.removeIf(x -> blockedWorkerIds.contains(x));

List<String> str1 = new ArrayList<String>();
str1.add("A");
str1.add("B");
str1.add("C");
str1.add("D");

List<String> str2 = new ArrayList<String>();
str2.add("D");
str2.add("E");

str1.removeIf(x -> str2.contains(x)); 

str1.forEach(System.out::println);

出力:ABC

おすすめ記事