定义一个功能将ArrayList 集合中的重复元素删除
ArrayList 集合中是允许储存重复元素的
import java.util.ArrayList;
import java.util.Iterator;
//定义一个功能将ArrayList 集合中的重复元素删除
public class ArrayListDemes2
{
public static void main(String[] args)
{
// 新建一个容器
ArrayList a = new ArrayList();
//调用自定义方法向集合中添加元素
addelements(a);
//调用自定义方法打印集合
printArrayList(a);
//ArrayList 中是可以添加重复元素的
//调用自定义方法除集合中的重复元素
System.out.println("--------------------------------------");
ArrayList a1 = removeRepeatElement(a);
printArrayList(a1);
}
//自定义一个打印集合元素的方法
private static void printArrayList(ArrayList a) {
Iterator it = a.iterator();
while(it.hasNext())
{
Studenti s = (Studenti)it.next();
System.out.println(s.getName()+":"+s.getAge());
}
}
//定义一个删除集合中重复元素的方法
private static ArrayList removeRepeatElement(ArrayList a) {
ArrayList al = new ArrayList();
Iterator it = a.iterator();
while(it.hasNext())
{
Studenti s = (Studenti) it.next();
if(!(al.contains(s)))
{
//contains 方法依靠的是equals 方法
al.add(s);
}
}
return al;
}
//定义向集合中添加元素的功能
private static void addelements(ArrayList a)
{
a.add(new Studenti("kkk",22));
a.add(new Studenti("sss",22));
a.add(new Studenti("www",22));
a.add(new Studenti("kkk",22));
a.add(new Studenti("kkk",22));
}
}
class Studenti
{
private String name;
private int age;
Studenti(String name ,int age)
{
this.name=name;
this.age = age;
}
public int getAge()
{
return age;
}
public String getName()
{
return name;
}
public String toString()
{
return "the student name : +name "+" and age is : "+ age;
}
public int hashCode()
{
return name.hashCode()+age*10;
}
public boolean equals(Object obj)
{
if(this == obj)
return true ;//同一个对象放两次,直接返回true
if(!(obj instanceof Studenti))
throw new ClassCastException("类型错误");
Studenti p = (Studenti)obj;
return this .name.equals(p.name) && this.age == p.age;
}
}
运行程序: