找出两个list中相同的数

时间:2025-03-10 13:48:26

基础做法:两个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,这是为了防止空指针。