ArrayList集合

复习ArrayList集合

ArrayList<Object> list=new Arraylist<Object>();

list.add(element);

list.get(index);

list.remove(index);

Iterator it=list.iterator();

while(it.hasNext())

{
System.out.println(it.next());

}

注:ListIterator 是Iterator的子接口。

ListIterator 可增删改查取;

Iterator 只可删查取。



练习:将自定义对象作为元素存在ArrayList集合中,并除去相同元素。例如,存人对象,同名并且同年龄视为同一人。

思路:在Person类中重写equals方法,然后通过contains方法两两比较Person实例,把实例存到list中。最后返回list打印结果。

Person类:

public class Person {
	private String name;
	private int age;
	Person(String n,int a)
	{
		this.name=n;
		this.age=a;
	}
	
	public String getname()
	{
		return this.name;
	}
	
	public int getage()
	{
		return this.age;
	}
	
	public boolean equals(Object o)
	{
		if(o instanceof Person)
		{
			Person oo=(Person)o;
	//		System.out.println(oo.getname());
			return this.name.equals(oo.getname())&&this.age==oo.age;
		}
		else
			return false;
	}
}


正文:
import java.util.ArrayList;
import java.util.Iterator;

public class compareClass {

	public static void main(String[] args) {
		ArrayList<Person> list=new ArrayList<Person>();
		list.add(new Person("小米",10));
		list.add(new Person("小米",10));
		list.add(new Person("小米",10));
		list.add(new Person("魅族",30));
		list.add(new Person("小米",20));
		list.add(new Person("小米",10));
		
		list=singleElement(list);//调用方法,判断同人。
		
		Iterator<Person> it=list.iterator();
		while(it.hasNext()){
			Person p=it.next();
			System.out.print(p.getname()+"  ");
			System.out.println(p.getage());
		}
	}
	public static ArrayList<Person> singleElement(ArrayList<Person> list)
	{
		ArrayList<Person> l=new ArrayList<Person>();
		Iterator<Person> it=list.iterator();
		while(it.hasNext())
		{
			Person p=it.next();
			if(!l.contains(p))//用到equals方法。
			{
				l.add(p);
			}
			else
				continue;
		}
		return l;
	}

}
运行结果:

小米  10
魅族  30
小米  20



以上只是存人对象,没有判断存其他对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值