当前位置: 首页 > news >正文

java中list去除成员_Java中List集合去除重复数据的六种方法

1. 循环list中的所有元素然后删除重复

public static List removeDuplicate(List list) {

for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {

for ( int j = list.size() - 1 ; j > i; j -- ) {

if (list.get(j).equals(list.get(i))) {

list.remove(j);

}

}

}

return list;

}

2. 通过HashSet踢除重复元素

public static List removeDuplicate(List list) {

HashSet h = new HashSet(list);

list.clear();

list.addAll(h);

return list;

}

3. 删除ArrayList中重复元素,保持顺序

// 删除ArrayList中重复元素,保持顺序

public static void removeDuplicateWithOrder(List list) {

Set set = new HashSet();

List newList = new ArrayList();

for (Iterator iter = list.iterator(); iter.hasNext();) {

Object element = iter.next();

if (set.add(element))

newList.add(element);

}

list.clear();

list.addAll(newList);

System.out.println( " remove duplicate " + list);

}

4.把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中

public static List removeDuplicate(List list){

List listTemp = new ArrayList();

for(int i=0;i

5、retainAll和retainAll用法

Lista = Arrays.asList ("a", "f", "e", "x", "w");

Listb = Arrays.asList ("a", "b", "c", "d");

Listc = null;

Listd = null;

c = new ArrayList(a);

c.retainAll(b); // 得到 a, b 的交集。

d = new ArrayList(a);

d.addAll(b); // 合并 a, b 值到 d 中。

d.removeAll(c);// 去掉交集 c 中的所有条目。留下只出现在a 或 b 中的条目。

System.out.println(d);

6、用JDK1.8 Stream中对List进行去重:list.stream().distinct();

Lista = new ArrayList<> ();

a.add("a");

a.add("b");

a.add("b");

Listb = new ArrayList<> ();

b.add("a");

b.add("c");

b.add("b");

a.addAll(b);

List list=(List) a.stream().distinct().collect(Collectors.toList());

System.out.println(list);

相关文章:

  • form-data php,php HTTP请求类(支持GET,POST,Multipart/form-data)
  • php页眉,如何在php中创建Word文档页眉/页脚
  • 程序员角度的锁--乐观锁、悲观锁
  • msf生成php,MSF-Shellcode生成和使用
  • 如何在首次启动 Linux 虚拟机时对其进行自定义
  • php 比nodejs 容易学,粗大事了:花两天时间学习了 Go 语言,发现比 Node.js 高不知多少去了...
  • php获取cname解析结果,如何检测来自CNAME子域的传入请求(使用PHP脚本)?
  • Ubuntu16.04系统中Nmon的安装
  • CentOS 7 网络磁盘挂载到本地 并测试传输速度
  • 数字图像处理灰度变换java,数字图像处理:图像的灰度变换(Matlab实现)
  • java math 最大,在Java.lang包的Math类中,求最大值的方法为(选一项)
  • 递推算法
  • java方法传递对象,java面向对象-3-方法参数传递
  • iOS 对UIAlertController内的输入框进行输入监听,实时改变确定、取消按钮颜色
  • php url别名,编写PHP程序实现Drupal中pathauto模块的批量生成URL别名(Alias)
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • Java,console输出实时的转向GUI textbox
  • javascript 哈希表
  • MySQL主从复制读写分离及奇怪的问题
  • 两列自适应布局方案整理
  • 前端之React实战:创建跨平台的项目架构
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 系统认识JavaScript正则表达式
  • 再谈express与koa的对比
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • postgresql行列转换函数
  • ​比特币大跌的 2 个原因
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #数学建模# 线性规划问题的Matlab求解
  • (14)Hive调优——合并小文件
  • (a /b)*c的值
  • (C#)一个最简单的链表类
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转载)OpenStack Hacker养成指南
  • .net web项目 调用webService
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET6 命令行启动及发布单个Exe文件
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .Net接口调试与案例
  • .考试倒计时43天!来提分啦!
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @Builder用法
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • []常用AT命令解释()
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android]如何调试Native memory crash issue
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [BIZ] - 1.金融交易系统特点