集合 --- ArrayList
2015-10-14 18:41
183 查看
例一
例二
import java.util.*; /* 去除ArrayList集合中的重复元素。 */ class ArrayListTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("java01"); al.add("java02"); al.add("java01"); al.add("java02"); al.add("java01"); // al.add("java03"); /* 在迭代时循环中next调用一次,就要hasNext判断一次。 Iterator it = al.iterator(); while(it.hasNext()) { sop(it.next()+"...."+it.next()); } */ /**/ sop(al); al = singleElement(al); sop(al); } public static ArrayList singleElement(ArrayList al) { //定义一个临时容器。 ArrayList newAl = new ArrayList(); Iterator it = al.iterator(); while(it.hasNext()) { Object obj = it.next(); if(!newAl.contains(obj)) newAl.add(obj); } return newAl; } }
例二
import java.util.*; /* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。 比如:存人对象。同姓名同年龄,视为同一个人。为重复元素。 思路: 1,对人描述,将数据封装进人对象。 2,定义容器,将人存入。 3,取出。 List集合判断元素是否相同,依据是元素的equals方法。 */ class Person { private String name; private int age; Person(String name,int age) { this.name = name; this.age = age; } public boolean equals(Object obj) { if(!(obj instanceof Person)) return false; Person p = (Person)obj; //System.out.println(this.name+"....."+p.name); return this.name.equals(p.name) && this.age == p.age; } /**/ public String getName() { return name; } public int getAge() { return age; } } class ArrayListTest2 { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(new Demo()); al.add(new Person("lisi01",30));//al.add(Object obj);//Object obj = new Person("lisi01",30); //al.add(new Person("lisi02",32)); al.add(new Person("lisi02",32)); al.add(new Person("lisi04",35)); al.add(new Person("lisi03",33)); //al.add(new Person("lisi04",35)); //al = singleElement(al); sop("remove 03 :"+al.**remove**(new Person("lisi03",33)));//remove方法底层也是依赖于元素的equals方法。 /* public boolean **remove**(Object o)移除此列表中首次出现的指定元素(如果存在)。如果列表不包含此元素, 则列表不做改动。更确切地讲,移除满足 (o==null ? get(i)==null : o.**equals**(get(i))) 的最低索引的元素 (如果存在此类元素)。如果列表中包含指定的元素,则返回 true(或者等同于这种情况:如果列表由于调用而发生更改, 则返回 true)。 */ Iterator it = al.iterator(); while(it.hasNext()) { Person p = (Person)it.next(); sop(p.getName()+"::"+p.getAge()); } } public static ArrayList singleElement(ArrayList al) { //定义一个临时容器。 ArrayList newAl = new ArrayList(); Iterator it = al.iterator(); while(it.hasNext()) { Object obj = it.next(); if(!newAl.**contains**(obj)) newAl.add(obj); /*public boolean **contains**(Object o)如果此列表中包含指定的元素,则返回 true。 更确切地讲,当且仅当此列表包含至少一个满足 (o==null ? e==null : o.**equals**(e)) 的元素 e 时, 则返回 true。 */ } return newAl; } }
相关文章推荐
- Linux下lzop命令安装
- java调用html模板发送html内容的邮件
- STL之map/multimap关联式容器学习
- JavaScript中字体浮动的简单演示实例
- 【转载】 Visual Studio插入自定义代码段
- 数据库-关系代数-对除法的理解
- Java线程面试题 Top 50
- git使用总结
- C++11学习总线及相关资料----悲惨了好多天,奉献了!
- 如果你刚第一次用itellingj编写scala,并且发现运行不了main方法
- 我的EF功能
- 删除word文档中表格后的空行
- Android 抓包,监控流量工具之 mitmproxy
- HDU 3790 最短路径问题(Dijkstra,要求距离和时间都最短)
- TableView 的reload 时页面出错 TableViewCell 的drawRect 问题
- PHP中spl_autoload_register函数的用法
- java 集合转数组
- 关于 数据库连接 字符串的设置
- 在eclipse中的类中每次都生成作者等信息注释
- ubuntu eclipse 建立server 提示coud not load the tomcat server configuration at /opt/apache ...的解决方法