本帖最后由 郭天龚 于 2013-6-5 13:34 编辑
如果ArrayList a=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java01");
a1.add("java03");
public static ArrayList singleElement(ArrayList a)
{
ArrayList a2=new ArrayList();
for (Iterator it=a.iterator();it.hasNext();)
{
Object obj=it.next();
if (!a2.contains(obj))
{
a2.add(obj);
}
}
return a2;
}
上面这段代码中的ArrayList a2=new ArrayList();构造一个初始容量为 10 的空列表。而public boolean contains(Object o)实质是
当且仅当此列表包含至少一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,则返回 true。
我想问的是if语句中的a2.contains(obj)第一次判断时a2中还没有元素,那么第一次时这里的e是什么?
也就是问第一次方法 contains(Object o)是拿Object o和a2中的什么比较的,因为此时a2为空列表。
|