Java中如何去掉List集合中重复的元素

在Java面试题中面试官常常会问这样一道题:如何去掉List集合中重复的元素?
通常我们知道list集合里面是无序的,并可以出现重复元素,set集合是不可以出现重复元素。解决上面的问题,我给出两种解决方案

  • 方案一:使用set集合
  • 方案二:通过jdk8提供的stream流的方式去重

见代码:

public class TestStream {
    public static void main(String[] args) {
//        问题:如何去掉List集合中重复的元素
        List<String> words = Arrays.asList("a","b","c","c","d","e","e","g","f");

        //        方案一:使用set集合
        Set<String> set = new HashSet<>();
        for (String word : words){
            set.add(word);

        }
        for (String word : set){
            System.out.println(word);
        }

        System.out.println("--------------------");
        //        方案二:通过jdk8提供的stream流的方式去重
        words.stream()//将list集合准换成stream流
                .distinct()//去重
                .collect(Collectors.toList())//将流转化为list集合
                .forEach(System.out::println);//循环打印
    }
}

运行结果:

a
b
c
d
e
f
g
--------------------
a
b
c
d
e
g
f

上面两种方案对比起来,方案二代码更简洁。


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

发布了120 篇原创文章 · 获赞 11 · 访问量 6950

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/105390727