List去重的几种方式
介绍四种不同的方法对 ArrayList 中的数据进行去重
1、使用 LinkedHashSet 对 List 去重
public class ListTest {public static void main(String[] args) {List<Integer> numList = new ArrayList<Integer>(Arrays.asList(1,1,1,2,3,3,3,4,5,5,6));System.out.println(numList);LinkedHashSet<Integer> hashSet = new LinkedHashSet<Integer>(numList);List<Integer> resultList = new ArrayList<Integer>(hashSet);System.out.println(resultList);} }// 输出 [1, 1, 1, 2, 3, 3, 3, 4, 5, 5, 6] [1, 2, 3, 4, 5, 6]
2、使用 stream 进行 List 去重
使用 stream 的 distinct() 方法返回一个由不同数据组成的流,通过对象的equals() 方法进行比较。
public static void removeDuplicate() {List<Integer> numList = new ArrayList<Integer>(Arrays.asList(1,1,1,2,3,3,3,4,5,5,6));System.out.println(numList);List<Integer> listWithoutDuplicates = numList.stream().distinct().collect(Collectors.toList());System.out.println(listWithoutDuplicates); }
使用 stream 对对象的单个字段进行去重。
List<IdDto> idDtos = idDtoList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() ->new TreeSet<>(Comparator.comparing(IdDto::getId))), ArrayList::new));
3、使用 HashSet 进行去重
利用 HashSet 不能添加重复数据的特性,由于 HashSet 不能保证添加顺 序,所以只作为判断条件。
public static void removeDuplicate(List<Integer> list) {HashSet<Integer> set = new HashSet<Integer>(list.size());List<Integer> result = new ArrayList<Integer>(list.size());for (Integer str : list) {if (set.add(str)) {result.add(str);}}list.clear();list.addAll(result);System.out.println(list); }
4、使用 List 的 contains 方法
public static void removeDuplicate(List<Integer> list) {List<Integer> result = new ArrayList<Integer>(list.size());for (Integer str : list) {if (!result.contains(str)) {result.add(str);}}list.clear();list.addAll(result);System.out.println(list); }
List去重的几种方式相关推荐
- url去重的几种方式
一.url去重的几种方式 1.使用 Java 的 Set 集合判重 Set 集合天生具备不可重复性,使用它只能存储值不相同的元素,如果值相同添加就会失败,因此我们可以通过添加 Set 集合时的结果来判 ...
- java steam 去重_List去重的5种方式
原标题:List去重的5种方式 转自:多纤果冻 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除arraylist中的重复数据 Link ...
- List集合去重的几种方式
List集合去重的几种方式 1. 通过set集合的特性,集合元素的唯一性 public static List heavyListMethod01(List list){ Set se ...
- stream去重_重复数据如何处理?List集合去重的四种方式
List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍.但是,有时候难免会遇到集合里的数据是重复的,需要进行去除. ...
- 数组对象去重的四种方式(强推最后一种!!!)
哈喽哈喽,我又来了. 今天分享的是数组对象去重的方式,先看看数组对象的形式: let arrObj = [{ name: "小红", id: 1 },{ name: "小 ...
- python列表实现_Python列表去重如何实现?列表去重的4种方式
在开发中对列表去重是非常常见的需求,列表去重也是Python中一种常见的处理方式.列表作为Python中最常用的数据结构,承担了Python中大多数的数据存储任务,但Python本身是不满足互异性的, ...
- python 列表去重的5种方式
列表去重在python实际运用中,十分常见,也是最基础的重点知识. 以下总结了5种常见的列表去重方法 一.使用for循环实现列表去重 此方法去重后,原顺序保持不变. # for循环实现列表去重list ...
- mysql 数据去重的三种方式[实战]
一.背景. 最近在和系统模块做数据联调,其中有一个需求是将两个角色下的相关数据对比后将最新的数据返回出去,于是就想到了去重,再次做一个总结. 二.数据去重三种方法使用. 1.通过MySQL DISTI ...
- list集合去重的三种方式
第一种利用两个for循环比较,然后删除重复元素 for(int i = 0; i < array.size(); i++){for(int j =i+1;j<array.size();j+ ...
最新文章
- 覆盖索引与联合索引_什么是覆盖索引?
- static/final/常量模式
- Tomcat方面的知识点
- java set是重复_java算法题,set内出现重复元素
- [转] Oracle学习之创建数据库(新建实例)
- 小隐隐于野:基于TCP反射DDoS攻击分析
- MySQL高级-存储过程和函数
- springboot整合rabbitMQ-路由模型
- HTML Meta标签详解
- windows计算机日志时间id6008,windows错误事件id6008修复方法
- 解决VMware装上Mac后icloud无法激活 【安装QQ发现不能注册Apple ID】
- Debug:ValueError: malformed node or string
- python字典增删改查项目_字典的增删改查如何操作?
- ECharts3 实现动态数据累积图
- MQTT协议-报文分析及网络客户端报文测试(MQTT报文连接阿里云上传数据+订阅数据)
- 身份证对照户籍地址 三级表
- 作为全新流量密码,AI绘画到底怎么挣钱?
- 南邮CTF部分篇章WP
- xposed android4.4,EdXposed下载-edxposed框架 安卓版v4.4.8-PC6安卓网
- 强化版动量效应:量化界的“追涨杀跌”
热门文章
- springboot毕设项目夕阳红养老院系统r6347(java+VUE+Mybatis+Maven+Mysql)
- requests库将cookieJar对象转换为cookies字典
- 手持弹幕(全屏文字滚动)
- 常用汇编指令对标志位的影响
- 观察 | 热度稍纵即逝,预测市场半红不火,预测平台有潜力没能力
- 2023年中国电竞行业研究报告
- Android Studio使用cmake配置c++开发Admob
- 倒计时9天!杭州区块链周,BAT同台,看巨头如何布局区块链
- Docker安装mysql镜像
- Unity技术手册 - 干扰/噪音/杂波(Noise)子模块