简述Java List去重五种方法
作者:海沫汐 发布时间:2022-02-28 03:17:13
标签:Java,List,去重
前言
去重,对于很多场合必不可少。写此篇文章是因为在之前做某个画面中,我在数据库中进行 Distinct
和 Order By
去重,发现影响效率,故此在后台先做去重处理;所以记录此文,已做参考:
Num1:使用java8新特性stream进行List去重
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(11);
list.add(14);
list.add(10);
list.add(19);
list.add(12);
System.out.println("初始化集合为:"+list);
List newList = (List) list.stream().distinct().collect(Collectors.toList());
System.out.println("java8新特性stream去重后集合为:"+newList);
}
结果为:
Num2:双重for循环去重
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(11);
list.add(14);
list.add(10);
list.add(19);
list.add(12);
System.out.println("初始化集合为:"+list);
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if(i!=j&&list.get(i)==list.get(j)) {
list.remove(list.get(j));
}
}
}
System.out.println("去重过后新集合为:"+list);
}
结果为:
Num3 :set集合判断去重,不打乱顺序
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(11);
list.add(14);
list.add(10);
list.add(19);
list.add(12);
System.out.println("初始化集合为:"+list);
Set set1 = new HashSet();
List newList = new ArrayList();
for (Object integer : list) {
if(set1.add(integer)) {
newList.add(integer);
}
}
System.out.println("set集合判断去重:"+newList);
}
结果为:
Num4 : 遍历后判断赋给另一个list集合
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(11);
list.add(14);
list.add(10);
list.add(19);
list.add(12);
System.out.println("初始化集合为:"+list);
List newList2 = new ArrayList();
for (Object integer : list) {
if(!newList2.contains(integer)){
newList2.add(integer);
}
}
System.out.println("去重后新集合为:"+newList2);
}
结果为:
Num5 : set 和 list 转换去重
public static void main(String[] args) {
List list = new ArrayList();
list.add(10);
list.add(11);
list.add(14);
list.add(10);
list.add(19);
list.add(12);
System.out.println("初始化集合为:"+list);
Set set2 = new HashSet();
List newList3 = new ArrayList();
set2.addAll(list);
newList3.addAll(set2);
System.out.println("set和list转换去重:"+newList3);
}
结果为:
来源:https://blog.csdn.net/weixin_43423579/article/details/103959300


猜你喜欢
- 本文实例为大家分享了Java多线程实现复制文件的具体代码,供大家参考,具体内容如下/** * 实现文件复制功能 * 多线
- 本文实例讲述了WPF弹出自定义窗口的方法。分享给大家供大家参考,具体如下:测试环境:[1]VS2010SP1[2]WPF(.NET Fram
- Spring MVC整合SpringBoot提供为整合MVC框架提供的功能特性内置两个视图解析器:ContentNegotiatingVie
- Spingboot JPA CriteriaBuilder获取指定字段废话不说直接贴代码public class ActivityVO im
- 本文实例展示了DevExpress实现GridView当无数据行时提示消息的方法,具体步骤如下:主要功能代码部分如下:/// <sum
- 1.可能是缓存导致的。解决方法:清除缓存!2.全局编译可能项目依赖别的模块,别的模块修改未进行编译,这时须先对依赖模块进行编译补充知识:ID
- 首先写布局文件activity_main.xml:<LinearLayout xmlns:android="http://s
- Command 常用属性CommText 要下达至数据源的命令CommanTimeout 出错等待时间Command 三种方法Execute
- 本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法。分享给大家供大家参考,具体如下:viewpager
- 本文以Java程序代码为例展示如何通过格式转换的方式将PPT幻灯片文档转为HTML文件。这里的PPT幻灯片可以是.ppt/.pptx/.pp
- Java 虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,如图所示:程序计数器程序计数
- 引言垃圾收集技术并不是Java语言首创的,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。垃圾收集技术需要
- /// <summary> /// 汉字转拼音缩写 /// </summary> /// <param nam
- 一、创建项目创建一个简单的Java项目,其中Main.java为主函数,包含main方法:二、完成JAR配置进入File->Proje
- 概念逃逸分析一种数据分析算法,基于此算法可以有效减少 Java 对象在堆内存中的分配。 Hotspot 虚拟机的编译器能够分析出一个新对象的
- list.remove最近做项目的过程中,需要用到list.remove()方法,结果发现两个有趣的坑,经过分析后找到原因,记录一下跟大家分
- 本文实例讲述了C#实现程序等待延迟执行的方法。分享给大家供大家参考。具体如下:[System.Runtime.InteropServices
- Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spr
- 第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap
- 当我提交项目输入中文描述信息的时候,发现IDEA 的 Terminal无法显示中文信息,显示的是下面这样的因为我的终端设置了git.bash