gpt4 book ai didi

java - AbstractCollection 中的 contains() 方法

转载 作者:行者123 更新时间:2023-11-29 07:00:52 24 4
gpt4 key购买 nike

public boolean contains(Object o) {
Iterator<E> it = iterator();
if (o==null) {
while (it.hasNext())
if (it.next()==null)
return true;
} else {
while (it.hasNext())
if (o.equals(it.next()))
return true;
}
return false;
}
}

我对 AbstractCollection 中的 contains() 方法有疑问。我认为上面的实现是等价的:

public boolean contains(Object o) {
Iterator<E> it = iterator();
while (it.hasNext())
if (it.next().equals(o))
return true;
return false;
}
}

我觉得没必要用null来区分。为什么用 null 和 not null 分隔?谢谢。

最佳答案

如果集合包含空元素,则调用 it.next() 将返回空。所以表达:

it.next().equals(o)

会抛出 NullPointerException

关于java - AbstractCollection 中的 contains() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com