面向对象-ArrayList练习
元素很多,涉及到频繁的增删操作,使用LinkedList;涉及到增删,还有查询,使用ArrayList。
1、去除重复元素:
代码:
import java.util.*; public class code { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("1"); al.add("2"); al.add("1"); al.add("2"); al.add("1"); sop(al); al = Single(al); sop(al); //在迭代时循环中next调用一次,就要hasNext判断一次。 // Iterator it = al.iterator(); // while(it.hasNext()) { // sop(it.next()+"---"+it.next()); // } } public static ArrayList Single(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; } public static void sop(Object obj) { System.out.println(obj); } }
2、去除相同元素的实例
List集合判断元素是否相同,依据是元素的equals方法。
代码:
import java.util.*; 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==age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class code { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(new Person("zhangsan",1)); al.add(new Person("lisi",2)); al.add(new Person("zhangsan",1)); al.add(new Person("lisi",2)); al.add(new Person("wangwu",3)); al = Single(al); Iterator it = al.iterator(); while(it.hasNext()) { Person p = (Person)it.next(); sop(p.getName()+"--"+p.getAge()); } } public static ArrayList Single(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; } public static void sop(Object obj) { System.out.println(obj); } }
下一篇:
Json数据转换成Map对象