在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
上面两种方案对比起来,方案二代码更简洁。
以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!