Java List去重的几种方式
2023-09-11 14:22:31 时间
list本身是可以元素重复的,一般面试或者实际开发中需要给list去重,以下推荐几个方法
首先创建一个list进行复制
List list = new ArrayList();
list.add("1");
list.add("1");
list.add("2");
list.add("2");
list.add("3");
list.add("3");
打印结果:[1, 1, 2, 2, 3, 3]
开始去重
1 把list putlistlld到set中,借助Set的特性进行去重,因为set是没有重复元素的
Set s = new HashSet();
s.addAll(list);
打印结果 [1, 2, 3]
2 利用set集合特性保持顺序一致去重
List list2 = new ArrayList(new LinkedHashSet(list));
打印结果 [1, 2, 3]
3 把list里的对象遍历一遍,用list.contains(),如果不存在就放入到另外一个list集合中
List listNew = new ArrayList();
for (Object str : list) {
if (!listNew.contains(str)) {
listNew.add(str);
}
}
打印结果 [1, 2, 3]
3 第三种方式 使用Java8特性去重
Object collect = list.stream().distinct().collect(Collectors.toList());
打印结果 [1, 2, 3]
5 使用list自身方法remove()–>不推荐,类似于冒泡排序思想,效率较低
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if(list.get(i)==list.get(j)){
list.remove(j);
}
}
}
打印结果 [1, 2, 3]
相关文章
- java动态编译
- Java实现 LeetCode 707 设计链表(环形链表)
- Java实现 LeetCode 496 下一个更大元素 I
- Java实现 LeetCode 450 删除二叉搜索树中的节点
- Java实现 LeetCode 12 整数转罗马数字
- Java实现LeetCode #986 - Interval List Intersections
- java实现数组转置
- Java实现第九届蓝桥杯第几天
- java spark list 转为 RDD 转为 dataset 写入表中
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- [Java] Check a Database call return value is empty list
- JAVA操作ZIP文件 收藏
- Java 编程要点之 I/O 流详解
- Java并发教程(Oracle官方资料)
- Java中List效率的比较
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- Java list 分页(多种方式)
- Java 正则表达式提取标签中的属性(src 连接地址)等
- 解决 java.sql.SQLSyntaxErrorException:Unknown column ‘xxx‘ in ‘field list‘的问题
- Java 为什么要使用反射(通俗易懂的举例)
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- java-信息安全(十二)-数字证书、CA证书【Java证书体系实现】
- 【java】Windows7 下设置环境变量
- java jdk 8 181下载地址 还是华为给的下载靠谱啊
- 【java】Java 多态
- Java Stream 处理分组后取每组最大&Stream流之list转map、分组取每组第一条&Java 8 Collectors:reducing 示例(List分组取最值)