概述
文章目录
- 前言
- 一、方式分类
- 1.使用java8新特性去重
- 2.使用LinkedHashSet删除list中的重复数据
- 3.使用List集合中的contains方法去重(循环遍历)
- 4.双重for循环去重
- 5.使用HashSet去重
- 总结
前言
java中list去重的五种方式
一、方式分类
1.使用java8新特性去重
代码如下(示例):
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11,9);
list.forEach(System.out::print);
System.out.println("");
System.out.println("------------------------------");
List<Integer> disList = list.stream().distinct().collect(Collectors.toList());
disList.forEach(System.out::print);
}
输出结果如下:
2.使用LinkedHashSet删除list中的重复数据
代码如下(示例):
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11,9);
System.out.println(list);
List<Integer> disList = new ArrayList<>(new LinkedHashSet<>(list));
System.out.println(disList);
}
输出结果如下:
3.使用List集合中的contains方法去重(循环遍历)
代码如下(示例):
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 7, 8, 8, 8, 11, 11,9);
//定义一个与需要去重的集合等长的集合
List<Integer> newList = new ArrayList<>(list.size());
System.out.println(list);
for(int i = 0; i < list.size(); i++){
if(!newList.contains(list.get(i))){
newList.add(list.get(i));
}
}
list = new ArrayList<>(newList);
System.out.println(list);
}
输出结果如下:
4.双重for循环去重
代码如下(示例):
public static void main(String[] args) {
//这里不能直接使用Arrays.asList生成的集合操作,需要使用ArrayList封装一下才可以
List<Integer> list = new ArrayList<>(Arrays.asList(7,7,8,8,8,11,11,9));
for(int i = 0; i < list.size() - 1; i++){
for(int j = i + 1; j < list.size(); j++){
if(list.get(i).equals(list.get(j))){
list.remove(list.get(j));
//list在循环删除的时候,由于集合长度减少了,所以下标相应的也要进行减一
j--;
}
}
}
System.out.println(list);
}
输出结果如下:
5.使用HashSet去重
代码如下(示例):
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7,7,8,8,8,11,11,9);
//此处是由于hashSet无法添加重复元素的原理
HashSet<Integer> set = new HashSet<>(list.size());
List<Integer> newList = Lists.newArrayList();
list.forEach(p->{
if(set.add(p)){
newList.add(p);
}
});
list = new ArrayList<>(newList);
System.out.println(list);
}
输出结果如下:
总结
以上就是今天要讲的内容,希望对你有所帮助,如果可以的话关注一下吧,非常感谢
最后
以上就是爱笑汽车为你收集整理的java中list去重的五种方式前言一、方式分类总结的全部内容,希望文章能够帮你解决java中list去重的五种方式前言一、方式分类总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复