如下面的对象 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得到不同的对象 慎重注意list的大小变化和索引 精简算法
主要介绍了Java中对List去重, Stream去重的问题解答,文中给大家介绍了Java中List集合去除重复数据的方法,需要的朋友可以参考下
如:“AREA”,如果查询的是个人地理数据库数据,则需要将字段名包含在方括号内,如:[AREA],如果查询的是ArcSDE地理数据库数据或是ArcIMS要素类或ArcIMS影象服务子层中的数据,则不需要将字段名括起,如:AREA ...
delete from 表名 where 要删除的字段名 = 要删除的字段值; 1.加载驱动 Class.ForName(com.mysql.jdbc.Driver); 2.建立连接 /* String url = "jdbc:mysql://localhost:3306/student"; //3306指你当前数据库的...
04072引用工作表中任意对象左上角、右下角的单元格 04073引用输入了数组公式的所有单元格区域 04074引用输入了某数组公式的单元格区域 04075引用输入了某个函数的全部单元格 04076引用含有特定文本字符串的所有...
94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...
删除stringlist中重复项目 删除TStringGrid中的列 动画窗体 取ComboBox List句柄 取TListview内所有选定项目 取TShellListView中选定文件的路径 取列举值的名称 在combobox中实现autocomplete 在DBGrid中使用回车键...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。...
如果为此参数指定了一个值, 则该值将覆盖 make 文件中的默认值。 值范围: C 编译程序的完整路径。 默认值: 无 remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果...
删除环境变量中的PATHT CLASSPATH中包含Oracle的值。 删除“开始”/“程序”中所有Oracle的组和图标。 删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents ...
5.4 根据对应值将键或索引排序 189 5.5 根据内嵌的数字将字符串排序 192 5.6 以随机顺序处理列表的元素 193 5.7 在增加元素时保持序列的顺序 195 5.8 获取序列中最小的几个元素 197 5.9 在排序完毕的序列中寻找...
数据库逻辑:针对分页的数据,增加字段page(表示页面id),删除和查询都通过where page = pageId; 2017.6.4 增加TypeConverter:数据库不支持的类型转化为json字符串; 增加list adapter: ...
本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用...
ArrayList,C 语言中的高级链表库用在entry.h定义 ... 您可以添加任意数量的字段,只要您保留包含指向列表中上一个和下一个对象的指针的entries字段,即可在列表中添加、移动、删除、排序。 id用于对列表进行索引,
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。 select * from tb_category where id in (select ...
(3) 通过“工程—工程1属性”菜单,将主窗体(frmMain)MDIform1设置为启动对象。 添加标准模块代码: '声明全局对象变量ABOcn,用于创建于数据库的连接 Public ADOcn As New ADODB.Connection 添加主窗体初始化过程...