如下面的对象 Subs,如果其属性 startSt 和 endSt 同时有重复的值,则删除其中重复的一个。
主要代码:
List<Subs> results = new CopyOnWriteArrayList<Subs>(); for (Object obj : list) { if (!results.contains(obj)) { results.add((Subs) obj); } }
注:对象 Subs 中必须要重写 equals 方法。
class Subs { private String startSt; private String endSt; public String toString() { StringBuilder buf = new StringBuilder(); buf.append("Subs:["); buf.append("startSt=").append(startSt).append(", "); buf.append("endSt=").append(endSt); buf.append("]"); return buf.toString(); } public boolean equals(Object obj) { if (obj == null) { return false; } if (obj instanceof Subs) { Subs other = (Subs) obj; if (this.getStartSt().equals(other.getStartSt()) && this.getEndSt().equals(other.getEndSt())) { return true; } } return false; } // 省略 setter/getter }
测试(junit4):
import java.util.LinkedList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import org.junit.Test; @Test public void test() { List<Subs> list = new LinkedList<Subs>(); Subs s1 = new Subs(); s1.setStartSt("桂林变"); s1.setEndSt("罗平站"); list.add(s1); Subs s2 = new Subs(); s2.setStartSt("桂林变"); s2.setEndSt("挡村变电站"); list.add(s2); Subs s3 = new Subs(); s3.setStartSt("国安站"); s3.setEndSt("尖峰站"); list.add(s3); Subs s4 = new Subs(); s4.setStartSt("迁岗站"); s4.setEndSt("庙岭站"); list.add(s4); Subs s5 = new Subs(); s5.setStartSt("迁岗站"); s5.setEndSt("庙岭站"); list.add(s5); System.out.println("去重前:" + list); List<Subs> results = new CopyOnWriteArrayList<Subs>(); for (Object obj : list) { if (!results.contains(obj)) { results.add((Subs) obj); } } System.out.println("去重后:" + results); }
重复的数据是:startSt=迁岗站, endSt=庙岭站
结果:
去重前:[Subs:[startSt=桂林变, endSt=罗平站], Subs:[startSt=桂林变, endSt=挡村变电站], Subs:[startSt=国安站, endSt=尖峰站], Subs:[startSt=迁岗站, endSt=庙岭站], Subs:[startSt=迁岗站, endSt=庙岭站]] 去重后:[Subs:[startSt=桂林变, endSt=罗平站], Subs:[startSt=桂林变, endSt=挡村变电站], Subs:[startSt=国安站, endSt=尖峰站], Subs:[startSt=迁岗站, endSt=庙岭站]]
相关推荐
一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。
本文将详细探讨如何通过一个示例代码来理解如何比较两个`List`并提取出不同的对象。 #### 核心知识点解析 1. **列表(List)的基础操作**: - `List`是一种常用的数据结构,在Java中,`List`接口是`Collection`框架...
在上面的代码中,我们首先创建了一个List对象,添加了五个People对象,然后使用HashSet删除了重复元素。结果显示,重复元素被删除成功。 接下来,让我们来看一下List对象的按照某个字段排序。List对象的排序可以...
本篇文章将深入探讨如何在C#中查找列表中的所有重复元素,并提供一个具体的实现示例。 首先,我们需要了解C#中的列表类型`List<T>`。`List<T>`是.NET框架提供的一个泛型类,它实现了`IList<T>`、`ICollection<T>`和...
本文将深入探讨如何比较两个集合,并关注在Java中使用List进行对比时的“新增”、“编辑”和“删除”操作。首先,我们需要理解集合的基本概念。集合是存储一组元素的数据结构,而List是一种有序的集合,允许重复元素...
在本文中,我们将介绍四种不同的方法来删除 Android List 中的重复数据。 方法一:通过循环进行删除 该方法使用双重循环来删除重复数据。外层循环遍历列表,内层循环从后向前遍历列表,比较每个元素是否相等,如果...
List去重是Java中的一种常见操作,对于List中的重复元素进行去重,从而使得List中的元素变得独一无二。 Java中提供了多种方法来实现List去重,下面我们将对其中的一些方法进行介绍。 使用HashSet去重 HashSet是一...
如:“AREA”,如果查询的是个人地理数据库数据,则需要将字段名包含在方括号内,如:[AREA],如果查询的是ArcSDE地理数据库数据或是ArcIMS要素类或ArcIMS影象服务子层中的数据,则不需要将字段名括起,如:AREA ...
这个类的主要功能是合并资源列表并消除重复项,这里的重复是基于字典中的`'host'`键的值。 `MergeHost`方法通过创建一个新的空列表`allResource`来开始。然后,它将`resource_list`的第一个元素添加到`allResource`...
在Java编程中,List集合是Java集合框架的重要组成部分,它是一种有序的集合,可以存储重复的元素。本文将深入解析Java中对List集合的常用操作,帮助开发者更好地理解和使用List接口。 1. **添加、获取和删除元素** ...
Java List集合是Java编程语言中一个非常重要的数据结构,它属于集合框架的一部分,主要用于存储一组有序的、可重复的对象。List接口提供了许多方法,使得在处理列表数据时具有很高的灵活性和效率。在这个“Java List...
为了解决这个问题,描述中给出了一段自定义的代码,它创建了一个名为`DeleteSameRow`的静态方法,接收一个DataTable对象和一个字段名作为参数,用于删除指定列的重复行。下面是这个方法的详细解释: ```csharp ...
- `deleteMany(List beanList)`: 批量删除beanList中所有bean对象在数据库表中对应的行。 - `update(Object beanInstance)`: 更新beanInstance中的数据到对应的数据库表记录。 - `updateMany(List beanList)`: 批量...
4. **提交与处理**:当用户提交表单时,Struts会自动将所有输入字段的数据绑定到ActionForm中的集合对象上。在Action类中,你可以通过`ActionForm`的getter方法获取到这个集合,并进行业务处理。 5. **数据库操作**...
在Java编程语言中,集合框架是处理对象的重要工具,其中包括List、Set和Map三大核心接口。这三种接口分别提供了不同的数据存储和管理方式,适用于不同的场景需求。 List接口表示一个有序的列表,允许元素重复。它的...
- **功能概述**:将选定的三维对象中的线段用弧线替代。 - **应用场景**:在三维建模过程中,用于提高模型精度和视觉效果。 **3. 三维化 (3DForcer)** - **功能概述**:强制将二维数据转换为三维数据。 - **应用...
这意味着即使两个对象的字段相同,但如果它们不是同一个对象实例,则会被认为是不同的键。 ### 总结 在选择使用`List`、`Set`还是`Map`时,需要根据具体的应用场景和需求来决定。如果需要维护元素的顺序或允许重复...
Redis 提供了 `HSET` 用于设置键值对,`HGET` 获取单个值,`HGETALL` 获取所有键值对,`HDEL` 删除指定字段,以及 `HINCRBY` 对数值字段进行增量操作。哈希表在存储用户信息、配置参数等场景中非常实用。 4. **有序...
- **`deleteMany(List beanList)`**:批量删除`beanList`中Java Bean对象在数据库表中的对应行。 - **`update(Object beanInstance)`**:更新数据库表中与`beanInstance`对应的记录。 - **`updateMany(List beanList...
1. 创建List对象:首先,你需要创建一个`List<T>`实例并填充数据。例如,如果你有一个`Student`类,你可以创建一个`List<Student>`对象,并添加多个`Student`实例。 ```csharp public class Student { public ...