简述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
0
投稿
猜你喜欢
- 数组的用处是什么呢?——当你需要将30个数进行大小排列的时候,用数组这样的数据结构存储是个很好的选择,当你是一个班的班主任的时候,每次要记录
- 前言最近都是Mybatis-Plus系列的小白文,算是对工作中最常使用的框架的细节扫盲。有在学习Mybatis-Plus使用的,可以关注一波
- 一、MySql实现分页查询的SQL语句 1、分页需求:客户端通过传递pageNo(页码),counter(每页显示的条数)两个参数去分页查询
- 解决办法:1.VCS--->Enable Version Control Integration2.选择要关联的版本工具补充:git
- 与链表、堆栈和队列不一样,二叉查找树不是线性数据结构,是二维数据结构。每个节点都包含一个LeftNode和RightNode,二叉查找树把比
- JdbcTypeInterceptor运行时自动添加 jdbcType 属性 * 签名@Intercepts({
- Eureka 采用 CS(Client/Server,客户端/服务器) 架构,它包括以下两大组件:Eureka Server:Eureka
- Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的。Java
- java * 类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存
- 题目要求思路一:枚举 + 二分逐一枚举值域内的所有值,然后二分判断是否合法。Javaclass Solution { &nbs
- 并发与并行并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点
- 01-前言:什么是循环依赖?首先,我们先明确下依赖的定义。 如果一个 Bean bar 的属性,引用了容器中的另外一个 Bean foo,那
- 嵌套表格,即在一张表格中的特定单元格中再插入一个或者多个表格,使用嵌套表格的优点在于能够让内容的布局更加合理,同时也方便程序套用。下面的示例
- 这篇文章主要介绍了JAVA利用递归删除文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 注解说明使用注解: @PostConstruct效果:在Bean初始化之后(构造方法和@Autowired之后)执行指定操作。经常用在将构造
- java常量池技术java中常量池技术说的通俗点就是java级别的缓存技术,方便快捷的创建一个对象。当需要一个对象时,从池中去获取(如果池中
- 异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步如何开始,好理解,现在
- 本文实例讲述了C#使用Word中的内置对话框的方法,分享给大家供大家参考。具体实现方法如下:使用 Microsoft Office Word
- 不过我写的比较草率,代码结构不是很好,也没有体现OOP的思想,这几天有空会重构一下。先把代码发出来:public class MatrixC
- 本文同时讨论了IComparable和IComparer接口,原因有两点。这两个接口经常一起使用。虽然接口类似且名称相似,但它们却有不同的用