----------------------
android培训、
java培训、期待与您交流! ----------------------
import java.util.*;
/*
* 去掉Person集合里的同名字且同年龄的元素
* */
class ArrayListTest2
{
public static void main(String[] a)
{
ArrayList v = new ArrayList();
v.add(new Person("倩影",4));
v.add(new Person("宽宽",6));
v.add(new Person("晶哥",6));
v.add(new Person("倩影",4));//list集合本身可以存相同元素,因为每个元素有自己的角标
v.add(new Person("晶哥",6));
v.add(new Person("西西",4));
showList(v);
sop(" ");//只是为了空一行,看看两次输出的结果
showList(singleElements(v));
}
public static ArrayList singleElements(ArrayList x)
{
ArrayList y=new ArrayList();//新建一个y集合做容器,用来存放不重复的元素
Iterator t =x.iterator();//t是x集合的迭代器
while(t.hasNext())
{
Object b=t.next();//取x集合的每个一个元素,让b先装着
if(!y.contains(b))//y容器里如果没有b
y.add(b);//就把b装到y里面
}//所以y里面的元素是不会重复的
return y;
}
public static void showList(ArrayList x)
{
Iterator t =x.iterator();
while(t.hasNext())
{
Person p=(Person) t.next();//取出的元素是不知道类型的,要强转成Person类
sop(p.getName()+"..."+p.getAge());
}
}
public static void sop(Object b)
{
System.out.println(b);
}
}
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean equals(Object p2)//自定义equals方法
{ //equals方法是底层自动调用,用来判断两个对象是否是同一个
if(!(p2 instanceof Person))
return false; //非Person对象来和Person直接返回假,因为必定不是同个对象
Person p22=(Person)p2;//强转类型
return this.name==p22.name&&this.age==p22.age;
} //我们定义:同名且同年龄的人是唯一的
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
--------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------