有什么方法可以使用 Lambda Stream 基于 Set 过滤流或列表中的 Set 字段?
例子:
List<Person> persons = new ArrayList<Person>();
Set<String> hobbySet1 = new HashSet<String>();
hobbySet1.add("H1");
hobbySet1.add("H2");
hobbySet1.add("H3");
Set<String> hobbySet2 = new HashSet<String>();
hobbySet2.add("H2");
hobbySet2.add("H4");
Set<String> hobbySet3 = new HashSet<String>();
hobbySet3.add("H3");
Set<String> hobbySet4 = new HashSet<String>();
hobbySet4.add("H4");
persons.add(new Person("P1", hobbySet1));
persons.add(new Person("P2", hobbySet2));
persons.add(new Person("P3", hobbySet3));
persons.add(new Person("P4", hobbySet4));
Set<String> searchHobby = new HashSet<String>();
searchHobby.add("H1");
searchHobby.add("H3");
Run Code Online (Sandbox Code Playgroud)
我想从基于 searchHobby 的 List 人员中过滤爱好,以便只保留那些在 searchHobby 中指定了他们的爱好的人。
我知道如何使用简单的 for 循环来实现这一点。
List<Person> result = new ArrayList<Person>();
for (String sHobby : searchHobby) …Run Code Online (Sandbox Code Playgroud)