元素很多,涉及到频繁的增删操作,使用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);
}
}