list中是可以有重复值的,set中是不可以的。所以经常利用这一点去掉list中的重复对象。如果list中是字符串或是基本数据类型。可以直接使用一下代码去掉重复。
List<String> list=new ArrayList<String>(); list.add("ssss"); list.add("ssss1"); list.add("ssss2"); list.add("ssss"); Set<String> set= new HashSet<String>(list); list.clear(); list=new ArrayList<String>(set);
set判断重复与否其实是调用equals方法。如果是对象的话重写被比较的bean即可,可是比较bean的时候会先比较两个bean的hashcode是否相等,所以也得重写hashcode方法。自己重写hashcode方法时一定要注意相等的两个对象返回的hashcode值相等,具体怎么重写hashcode方法在网上一搜有很多。这里就不再说了。呵呵,还是比较懒的。下面是一个例子代码。
bean代码:
public class TestBean { private Integer haopingNum; private String seriesName; public Integer getHaopingNum() { return haopingNum; } public void setHaopingNum(Integer haopingNum) { this.haopingNum = haopingNum; } public String getSeriesName() { return seriesName; } public void setSeriesName(String seriesName) { this.seriesName = seriesName; } @Override public boolean equals(Object obj) { if(obj!=null){ if(obj instanceof TestBean){ TestBean tb=(TestBean)obj; if(this.haopingNum.equals(tb.haopingNum)&&this.seriesName.equals(tb.getSeriesName())){ return true; } } } return false; } @Override public int hashCode() { int result=17; if(haopingNum!=null){ result+=haopingNum*37; } if(seriesName!=null){ result+=seriesName.hashCode(); } return result; } }
以下是测试方法
List<TestBean> list=new ArrayList<TestBean>(); TestBean tb=new TestBean(); tb.setHaopingNum(1); tb.setSeriesName("sss"); TestBean tb2=new TestBean(); tb2.setHaopingNum(1); tb2.setSeriesName("ssss"); TestBean tb3=new TestBean(); tb3.setHaopingNum(2); tb3.setSeriesName("sss"); list.add(tb); list.add(tb2); list.add(tb3); list.add(tb3); Set<TestBean> set= new HashSet<TestBean>(list); list.clear(); list=new ArrayList<TestBean>(set); System.out.println(list.size());
相关推荐
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
这里我们将详细讨论如何在`List`集合中去除重复对象的实现,特别是针对对象类型的集合。 首先,我们要明确一点:在Java中,当我们说两个对象是重复的,通常是指它们的属性值相等,而不是指它们在内存中的引用地址...
Java中List对象列表实现去重或取出及排序的方法 在Java中,对List对象列表实现去重或取出及排序是一种常见的操作。下面将详细介绍相关的方法和实现。 1. 实体类重写equals和hashCode方法 在Java中,想要去重List...
2. **比较与去除重复项**: - 使用双重循环来逐个比较两个列表中的元素。 - 如果发现两个列表中有相同的`Student`对象,则从第一个列表中移除该对象。 - 移除后需要更新循环变量,以避免遗漏元素。 3. **使用`...
将List转换为Set,可以自动去除重复项。例如: ```python my_list = [1, 2, 3, 2, 4, 3] my_set = set(my_list) ``` 在这个例子中,`my_set`将只包含`{1, 2, 3, 4}`,因为重复的2和3已被移除。 如果我们仍然需要...
例如,我们可以创建一个泛型方法,接受一个包含待去重数据的集合作为输入,利用枚举遍历这个集合,并将每个元素添加到一个HashSet中,HashSet在插入时会自动检查并排除重复项。由于HashSet的查找和插入操作具有O(1)...
Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...
Set接口下的集合类如HashSet不存储重复元素,可以方便地去除列表中的重复项。将List转换为Set,然后再转换回List即可: ```java List<PenBean> uniquePenBeanList = new ArrayList(new HashSet(penBeanList)); ``` ...
由于HashSet不允许重复,如果有重复元素,它们在转换过程中会被自动去除。接着,我们比较list的大小和转换后的HashSet的大小。如果两者大小不同,说明原始list中存在重复元素,`isRepeat`变量将被设置为`true`。 ...
在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set...
在示例代码中,首先创建一个`TreeSet`对象,然后遍历字符串数组并将每个元素添加到`Set`中。由于`Set`不允许重复,所以重复的字符串会被自动忽略。最后,将`Set`转换回字符串数组并打印结果。`TreeSet`保证了元素的...
本文将介绍一种去除SharePoint列表中特定列重复值的方法,主要涉及`SPList`对象的`GetDistinctFieldValues`方法。 首先,我们需要获取到目标列表的实例,例如`voteBoxList`,并明确我们要处理的列名,例如“得票人...
List集合多个复杂字段判断去重的案例 在 Java 编程中,List 集合是我们常用的数据结构之一。当我们需要对 List 集合...同时,我们也可以使用 contains 方法来检查对象是否已经存在于集合中,以便避免重复对象的出现。
List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法进行介绍。 使用HashSet去重 HashSet是一...
在Java编程中,合并多个List并去除重复元素是一项常见的任务,尤其在处理数据集合时。在给定的案例中,我们看到两种不同的方法来完成这个任务。首先,让我们详细讲解这两种方法。 ### 1. 使用`addAll()`和`...
- 检查当前对象的`magicId`,如果它还没有在`full`对象中出现过,继续检查`id`。 - 如果`id`也没有出现过,创建一个新的对象,复制当前对象的`id`和`magicId`到新对象,并将新对象添加到`result`数组中。 - 将...
_java List_是一种常用的数据集合,在实际应用中,我们经常需要去掉_List_中的重复元素以提高数据的准确性和可读性。本文将介绍_java List_去掉重复元素的几种方式,包括使用_LinkedHashSet_、_HashSet_、_java8_新...
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并 Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
然后,我们定义了一个singleElement方法,该方法将ArrayList对象作为参数,并返回一个新的ArrayList对象,该对象中不包含重复元素。 在singleElement方法中,我们使用了Iterator对象来迭代原始ArrayList对象中的...