Java List去重的几种方式
Posted 蜜桃婷婷酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java List去重的几种方式相关的知识,希望对你有一定的参考价值。
list本身是可以元素重复的,一般面试或者实际开发中需要给list去重,以下推荐几个方法
首先创建一个list进行复制
List list = new ArrayList();
list.add("1");
list.add("1");
list.add("2");
list.add("2");
list.add("3");
list.add("3");
打印结果:[1, 1, 2, 2, 3, 3]
开始去重
1 把list putlistlld到set中,借助Set的特性进行去重,因为set是没有重复元素的
Set s = new HashSet();
s.addAll(list);
打印结果 [1, 2, 3]
2 利用set集合特性保持顺序一致去重
List list2 = new ArrayList(new LinkedHashSet(list));
打印结果 [1, 2, 3]
3 把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中
List listNew = new ArrayList();
for (Object str : list) {
if (!listNew.contains(str)) {
listNew.add(str);
}
}
打印结果 [1, 2, 3]
3 第三种方式 使用Java8特性去重
Object collect = list.stream().distinct().collect(Collectors.toList());
打印结果 [1, 2, 3]
5 使用list自身方法remove()–>不推荐,类似于冒泡排序思想,效率较低
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if(list.get(i)==list.get(j)){
list.remove(j);
}
}
}
打印结果 [1, 2, 3]
以上是关于Java List去重的几种方式的主要内容,如果未能解决你的问题,请参考以下文章