黑马程序员技术交流社区
标题:
ArrayList的问题
[打印本页]
作者:
rolling-stone
时间:
2014-8-2 12:35
标题:
ArrayList的问题
不会在主函数中调用equal方法,怎么调用,还有这是一个去掉重复元素的程序,但是现在不知道如何调用,所以去不掉重复的元素.
import java.util.*;
class ArrayListDemo2
{
private String name;
private int age;
ArrayListDemo2(String name,int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public boolean equals(Object obj)
{
if(obj instanceof ArrayListDemo2)
{
return false;
}
ArrayListDemo2 a = (ArrayListDemo2)obj;
return this.name.equals(a.name) && this.age == a.age;
}
public static ArrayList SingleElement(ArrayList al)
{
ArrayList a = new ArrayList();
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!a.contains(obj))
a.add(obj);
}
return a;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
ArrayList al = new ArrayList();
al.add(new ArrayListDemo2("zhao",20));
al.add(new ArrayListDemo2("zhao",20));
al.add(new ArrayListDemo2("qian",20));
al.add(new ArrayListDemo2("zhao",20));
al.add(new ArrayListDemo2("sun",20));
al.add(new ArrayListDemo2("zhao",20));
al=SingleElement(al);
Iterator it = al.iterator();
while(it.hasNext())
{
ArrayListDemo2 al2 = (ArrayListDemo2)it.next();
sop(al2.getName()+";;"+al2.getAge());
}
}
}
复制代码
作者:
ztw
时间:
2014-8-2 12:53
看看视频吧!equals是被底层调用的
作者:
rolling-stone
时间:
2014-8-2 12:55
ztw 发表于 2014-8-2 12:53
看看视频吧!equals是被底层调用的
那我的这个无法去掉重复的,这是为什么?就是视频没看懂才上来问的
作者:
李大壮
时间:
2014-8-2 14:03
本帖最后由 李大壮 于 2014-8-2 14:07 编辑
21行,应该是不属于的情况下才返回false。
即 if(!(obj instanceof ArrayListDemo2))
调用equals的是contains语句,a.contains(obj)代表了拿 obj 分别 equals 集合a里面的所有元素。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2