Java列表去重

简介: Java列表去重

1 问题

很多时候我们需要对列表进行去重处理,咋整呢?


2 方法

采用TreeSet方法

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;
public class ListQuChong01 {
   public static void main(String[] args) {
       List<Integer> list = new ArrayList<>(){{
           add(1);
           add(3);
           add(3);
       }};
       System.out.println("原列表数:"+ list);
       method(list);
   }
   public static void method(List<Integer> list){
       TreeSet<Integer> set = new TreeSet<>(list);
       System.out.println("结果:"+set);
   }
}

采用迭代方法

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ListQuChong02 {
   public static void main(String[] args) {
       List<Integer> yuan = new ArrayList<>(){{
           add(2);
           add(3);
           add(3);
       }};
       System.out.println("原列表:"+yuan);
       Method(yuan);
   }
   public static void Method(List<Integer> yuan) {
       Iterator<Integer> iterator = yuan.listIterator();
       while (iterator.hasNext()){
           Integer i = iterator.next();
           if (yuan.indexOf(i) != yuan.lastIndexOf(i)) {
               iterator.remove();
           }
       }
       System.out.println("结果:"+ yuan);
   }
}


3 结语

针对列表去重问题,提出两种方法,分别是TreeSet和迭代,通过实验,证明该方法是有效的,还有很多方法能解决,本文仅提供两种方法,未来可以继续总结。

目录
相关文章
|
存储 Java 程序员
Java判断列表中元素的唯一性
Java判断列表中元素的唯一性
|
9月前
|
人工智能 Java
Java 中数组Array和列表List的转换
本文介绍了数组与列表之间的相互转换方法,主要包括三部分:1)使用`Collections.addAll()`方法将数组转为列表,适用于引用类型,效率较高;2)通过`new ArrayList&lt;&gt;()`构造器结合`Arrays.asList()`实现类似功能;3)利用JDK8的`Stream`流式计算,支持基本数据类型数组的转换。此外,还详细讲解了列表转数组的方法,如借助`Stream`实现不同类型数组间的转换,并附带代码示例与执行结果,帮助读者深入理解两种数据结构的互转技巧。
620 1
Java 中数组Array和列表List的转换
|
9月前
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
289 0
|
存储 Java
如何在 Java 中打印字符串数组列表
【8月更文挑战第23天】
237 2
|
Java 开发者
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案
在Java编程中,if-else与switch作为核心的条件控制语句,各有千秋。if-else基于条件分支,适用于复杂逻辑;而switch则擅长处理枚举或固定选项列表,提供简洁高效的解决方案。本文通过技术综述及示例代码,剖析两者在性能上的差异。if-else具有短路特性,但条件增多时JVM会优化提升性能;switch则利用跳转表机制,在处理大量固定选项时表现出色。通过实验对比可见,switch在重复case值处理上通常更快。尽管如此,选择时还需兼顾代码的可读性和维护性。理解这些细节有助于开发者编写出既高效又优雅的Java代码。
225 2
|
存储 搜索推荐 算法
在 Java 中如何更改数组列表的顺序
【8月更文挑战第23天】
539 0
|
存储 安全 Java
在 Java 中如何存储数组列表
【8月更文挑战第23天】
232 0
|
存储 Java API
如何在 Java 中创建 ArrayList 列表?
【8月更文挑战第23天】
472 0
|
存储 Java API
如何在 Java 中填充数组列表?
【8月更文挑战第23天】
162 0
|
数据采集 前端开发 Java
2024年全新基于Java爬取微博数据(完整版)
【5月更文挑战第9天】适用于2024年 的 基于 Java 爬取微博数据,涉及 微博正文、图片、视频、粉丝数、关注数、等微博主页正文列表数据及微博主页用户数据信息的获取