Set 的add方法
add(E e) 如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。
01 public static List removeDuplicateWithOrder(List list) {
|
Java处理List中的重复值有两种方法,一种是经处理后得到新的无序list,另外一种则保留list原有的顺序。
方法一:使用Hastset的hashcode方法判断是否重复,数据不会重复,但顺序会变
- package array;
-
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
-
- public class ListOnlyValue_1 {
- public static void main(String[] args) {
- List<String> mylist = new ArrayList<String>();
- mylist.add("test");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("ab");
- mylist.add("sd");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("xyz");
- System.out.println("处理前的list:" + mylist);
-
- mylist = removeDuplicate(mylist);
- System.out.println("处理后的list:" + mylist);
- }
-
- public static List<String> removeDuplicate(List<String> list){
- HashSet<String> hashSet = new HashSet<String>(list);
- list.clear();
- list.addAll(hashSet);
-
- return list;
- }
- }
代码运行结果如下:
- 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz]
- 处理后的list:[test, sd, ab, xyz, cd]
方法二:通过Hashset的add方法判断是否已经添加过相同的数据,如果已存在相同的数据则不添加,维持list中元素原有的顺序。
- package array;
-
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.List;
-
- public class ListOnlyValue_2 {
- public static void main(String[] args) {
- List<String> mylist = new ArrayList<String>();
- mylist.add("test");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("ab");
- mylist.add("sd");
- mylist.add("ab");
- mylist.add("cd");
- mylist.add("xyz");
- System.out.println("处理前的list:" + mylist);
-
- mylist = removeDuplicateWithOrder(mylist);
- System.out.println("处理后的list:" + mylist);
- }
-
- public static List<String> removeDuplicateWithOrder(List<String> list) {
- HashSet<String> hashSet = new HashSet<String>();
- List<String> newlist = new ArrayList<String>();
-
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- String element = (String) iterator.next();
- if (hashSet.add(element)) {
- newlist.add(element);
- }
- }
-
- list.clear();
- list.addAll(newlist);
- return list;
- }
- }
代码运行结果如下:
- 处理前的list:[test, ab, cd, ab, sd, ab, cd, xyz]
- 处理后的list:[test, ab, cd, sd, xyz]
该方法运用了HashSet的add属性,若HashSet中已存在某元素,add方法是不会再将此元素add到HashSet中的,正是运用此原理,当HashSet能add一个元素时,newlist也跟着add一个元素,这样就得到一个维持原有顺序的没有重复值的新list。
分享到:
相关推荐
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...
主要介绍了Java中对List去重, Stream去重的问题解答,文中给大家介绍了Java中List集合去除重复数据的方法,需要的朋友可以参考下
NULL 博文链接:https://xuedong.iteye.com/blog/1157186
java list集合和数组去除重复项,并记录重复次数个数。
主要介绍了如何实现java8 list按照元素的某个字段去重,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
主要介绍了Java中List集合对象去重及按属性去重的8种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一地的参考借鉴价值,需要的朋友可以参考下
比较list得到不同的对象 慎重注意list的大小变化和索引 精简算法
在list集合中输入元素,去除重复的元素并输出 1.使用for i循环去重 2.使用迭代器去重 3.使用HashSet特性去重
在日常的业务开发中,可能会遇到需要将 List 集合中的重复数据去除掉的场景。在实际的业务开发中遇到的情况会更复杂。比如,List 集合可能是历史遗留问题,也有可能是调用接口返回的类型限制,只能使用 List 接收;...
今天小编就为大家分享一篇关于Java中List根据map的某个key去重的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto? 3、说说&和&&的区别。 4、在JAVA中如何跳出当前的多重嵌套循环? 5、switch语句能否作用在byte上,能否作用在long上...
25、JAVA中Object类中有哪些常用方法? 19 26、heap和stack有什么区别。 19 27、GC是什么? 为什么要有GC? 20 28、什么是内部类?分为哪几种? 20 29、为什么需要内部类? 20 30、内部类可以引用它的包含类的成员吗?...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
最初的想法是不创建文件,直接将内容保存到变量中,然后创建索引,即先抓取网页的内容,然后将网页的内容和URL保存到自己构建的JavaBean对象中,接着将这个对象放到一个list列表中,等所有网页抓取完毕以后,将这...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九...
今天小编就为大家分享一篇关于List集合多个复杂字段判断去重的案例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17...
StringTrimmedResultSet :去除ResultSet中中字段的左右空格 Trim ">1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写sql语句) 3 ...