Java实现List去重的几种方法总结

 更新时间:2023年09月27日 10:43:55   作者:fking86  
这篇文章主要为大家详细介绍了Java中List去重的几种常用方法总结,文中的示例代码讲解详细,具有一定的学习和参考价值,需要的小伙伴可以了解一下

HashSet去重

import java.util.HashSet;
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(2);
System.out.println(set); // [1, 2]

TreeSet去重

import java.util.TreeSet;
TreeSet<Integer> set = new TreeSet<>();  
set.add(2);
set.add(1);
set.add(2);
System.out.println(set); // [1, 2]  

LinkedHashSet去重

import java.util.LinkedHashSet;
LinkedHashSet<Integer> set = new LinkedHashSet<>();
set.add(2);
set.add(1); 
set.add(2);
System.out.println(set); // [2, 1]

迭代器去重

import java.util.ArrayList;
import java.util.Iterator;
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
    Integer i = it.next();
    if (list.indexOf(i) != list.lastIndexOf(i)) {
        it.remove();
    }
}
System.out.println(list); // [1]  

Stream去重

import java.util.stream.Collectors;
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2); 
list.add(2);
List<Integer> distinctList = list.stream()
                                .distinct()
                                .collect(Collectors.toList()); 
System.out.println(distinctList); // [1, 2]

contains去重

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
for (Integer i : list) {
    if (!list.contains(i)) {
        list.remove(i);
    }
}
System.out.println(list); // [1, 2]

写在最后

到此这篇关于Java实现List去重的几种方法总结的文章就介绍到这了,更多相关Java List去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IDEA中的maven没有dependencies解决方案

    IDEA中的maven没有dependencies解决方案

    这篇文章主要介绍了IDEA中的maven没有dependencies解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 对spring的@Cacheable缓存的使用理解

    对spring的@Cacheable缓存的使用理解

    这篇文章主要介绍了对spring的@Cacheable缓存的使用理解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • mybatis中#{}和${}的区别详解

    mybatis中#{}和${}的区别详解

    本文主要介绍了mybatis中#{}和${}的区别详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringBoot项目部署的四种方式详解

    SpringBoot项目部署的四种方式详解

    本文详细介绍了SpringBoot项目的四种部署方式,包括原始命令部署、宝塔Linux可视化部署、Docker容器化部署和Docker容器平台托管,每种方式都有其特点和适用场景,需要的朋友可以参考下
    2026-04-04
  • Springboot处理跨域的实现方式(附Demo)

    Springboot处理跨域的实现方式(附Demo)

    这篇文章主要介绍了Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 详解Java token主流框架之JWT

    详解Java token主流框架之JWT

    JWT(JSON Web Token)是一种基于JSON格式的轻量级的、用于身份认证的开放标准,它通过在用户和服务器之间传递一个安全的、可靠的、独立的JSON对象来进行身份验证和授权,本文将详细给大家介绍Java token主流框架之JWT,需要的朋友可以参考下
    2023-05-05
  • 关于activemq安装配置以及启动错误的解决

    关于activemq安装配置以及启动错误的解决

    这篇文章主要介绍了关于activemq安装配置以及启动错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Springboot接收文件报错Required request part‘file‘is not present问题分析及解决

    Springboot接收文件报错Required request part‘file‘is 

    文章总结:在Flutter和Vue项目中遇到文件上传问题,后端接口Controller定义无误,但前端通过FormData封装上传文件时报错,通过浏览器抓包和PostMan测试,发现后台确实可以接收参数,最终通过修改封装的file为file.raw解决问题,解决了文件上传不成功的问题
    2025-12-12
  • Android Studio 中Gradle配置sonarqube插件(推荐)

    Android Studio 中Gradle配置sonarqube插件(推荐)

    Sonarqube作为一个很实用的静态代码分析工具,在很多项目中都使用,本文重点给大家介绍Android Studio 中Gradle配置sonarqube插件的相关知识,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • java使用xpath和dom4j解析xml

    java使用xpath和dom4j解析xml

    XPath是一门在XML文档中查找信息的语言,下面介绍一下java使用xpath和dom4j解析xml的示例,大家参考使用吧
    2014-01-01

最新评论