テストデータを作って、フィルタリングしたい値のリスト(String想定)でフィルタリングする例です。
リスト.stream().filter(リストの個別の中身 -> フィルタ条件(true/falseを返却する※1)).collect(結果を集めて変換※2)
※1 ここでは無名関数を作り判定している。
※2 filterした結果をリストにして戻している。
import java.util.List; import java.util.ArrayList; import java.util.Collections; import java.util.Map; import java.util.HashMap; import java.util.stream.Collectors; class filterTest { public static void main(String args[]) { //値のセット List<Map<String, Object>> mapList = setTestData(); //フィルタリングする値 String[] filterList = new String[] {"B2", "C3", "F6"}; System.out.println("フィルタリング前の出力 -----"); //フィルタリング前の出力 mapList.stream().forEach(lst -> System.out.println("key:" + lst.get("key") + ",value1=" + lst.get("value1") + ",value2=" + lst.get("value2"))); System.out.println("フィルタリング後の出力 -----"); //フィルタリング処理 mapList = mapList.stream().filter( lst -> { for(String filt : filterList) { if(filt.equals(String.valueOf(lst.get("value1")))) return false; } return true; }).collect(Collectors.toList()); //フィルタリング結果の出力 mapList.stream().forEach(lst -> System.out.println("key:" + lst.get("key") + ",value1=" + lst.get("value1") + ",value2=" + lst.get("value2"))); } /** * テストデータの設定 * @return テストデータリスト */ public static List<Map<String, Object>> setTestData() { //オブジェクトの初期化 List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); Map<String, Object> map = null; //10件分のテストデータを作成する for(int i = 0; i < 10; i++) { map = new HashMap<String, Object>(); //キー名(String)、キー値(String) map.put("key", String.valueOf(i + 1)); //属性名(String)、属性値(String) map.put("value1", (new String(Character.toChars(65+i)).concat(String.valueOf(i+1))) ); //属性名(String)、属性値(Integer) map.put("value2", Integer.valueOf(i + 100)); mapList.add(map); } return mapList; } }