基础做法:两个for循环比较
public class ForEachTest {
public static void main(String[] args) throws ParseException {
List<String> list3=new ArrayList<>();
List<String> list1=new ArrayList<>();
("xiaozhou");
("xiaolei");
("xiaoqi");
List<String> list2=new ArrayList<>();
("xiaosai");
("xiaozhou");
("xiaoqi");
for(String l1:list1){
for(String l2:list2){
if((l2)){
(l1);
}
}
}
(list3);
}
}
优化解法:利用stream
public class ForEachTest {
public static void main(String[] args) throws ParseException {
List<String> list3=new ArrayList<>();
List<String> list1=new ArrayList<>();
("xiaozhou");
("xiaolei");
("xiaoqi");
List<String> list2=new ArrayList<>();
("xiaosai");
("xiaozhou");
("xiaoqi");
list3=().filter(list2::contains).collect(());
(list3);
}
}
在这个地方有引申的知识点:
String s=().filter(list2::contains).findAny().orElse("c");
一般情况下,当使用findAny()或findFirst()时,会在后面跟着orElse,这是为了防止空指针。