实现不用循环,删除集合中的重复(任意)元素
来源:互联网 发布:树木每年被砍伐的数据 编辑:程序博客网 时间:2024/06/04 18:25
package cn.huizhi.tool;import java.util.ArrayList;import java.util.List;/** * * @author hubiao * @version 1.0 * @time 2013-12-26 * * 实现任意删除集合 中的对象 * 已知:list中有4个学生对象, * 要求:把list中姓名中带有 “张” 的 学生删除。(不能采用循环、迭代实现) * 思路: * 1:采用list提供的contains()判断,而contains底层使用是equest。为了让我们以姓名条件判断,则需要重写equest方法。 * 2:在学生类中重写equest方法,如果姓名为null或""则返回true * 3:如果返回true,则执行remove删除。 * ---------------- * 通过ArrayList源代码。发现contains底层还是依赖了循环..... * public boolean contains(Object o) {return indexOf(o) >= 0; }public int indexOf(Object o) {if (o == null) { for (int i = 0; i < size; i++)if (elementData[i]==null) return i;} else { for (int i = 0; i < size; i++)if (o.equals(elementData[i])) return i;}*/public class ListDemo {public static void main(String[] args) {//list中有4个学生对象List<Person> arr= new ArrayList<Person>();Person p1 = new Person(1l,"小张");Person p2 = new Person(2l,"小李");Person p3 = new Person(3l,"李四");Person p4 = new Person(4l,"张三丰");arr.add(p1);arr.add(p2);arr.add(p3);arr.add(p4);//组织条件Person p = new Person(1,"张");if(arr.contains(p)){arr.remove(p);}//执行完后结果:[Person [id=1, name=小张, age=null], Person [id=2, name=小李, age=null], Person [id=3, name=李四, age=null]]System.out.println(arr);}}-----------------Person中重写eqeust方法----------------//obj其时也是底层集合中循环的对象。public boolean equals(Object obj) {//传递的对象为null或不是学生对象,直接返回falseif(obj==null || !(obj instanceof Person)) return false;//向下转型:利于直接判断Person p = (Person) obj;//判断是否满足条件return p.getName().contains(this.name);//this对象是我们定义的条件对象,p是集合中的对象}
0 0
- 实现不用循环,删除集合中的重复(任意)元素
- 删除集合中的重复元素
- C#循环删除集合中的元素
- 关于循环删除集合中的元素
- 删除重复元素,集合
- 循环剔除集合(List)中的重复元素
- java 删除ArrayList LinkedList集合中的重复元素
- foreach循环删除集合中的元素出现ConcurrentModificationException异常
- foreach循环删除集合中的元素出现ConcurrentModificationException异常(补充)
- Java在循环中删除集合中的元素
- 集合循环时删除元素
- 循环删除list集合元素
- 删除集合中的元素
- 消除集合中的重复元素
- 去掉集合中的重复元素
- 去除集合中的重复元素
- for循环删除集合元素vs迭代器删除集合元素
- 删除单链表中的重复元素
- (2/3/4)-D Sqr/Rects/Cubes/Boxes?
- 测试
- 伤心啊,写了4遍blog,不是格式不对就是丢内容,晕死,睡觉
- cygwin android: command not found
- sencha touch笔记(9)——listpaging‘分页’拉取数据
- 实现不用循环,删除集合中的重复(任意)元素
- .net调用分页存储过程
- Windows安全描述符SECURITY_DESCRIPTOR
- C#中的虚方法
- POJ3680——Intervals(费用流)
- JBoss Forge
- C语言变量声明加冒号的用法(占位符)
- Android Screen Monitor (asm.jar)
- 从头开始学cocos2dx笔记之八(ActionTest)(一)