为什么方法add(<T> element)
和remove(Object o)
接受不同的参数?
例如在Set<Short>
中添加短元素。为什么删除方法会接受Object
?如果您无法添加任何其他数据类型,为什么要删除其他数据类型?
谢谢。
答案 0 :(得分:2)
add(<T> element)
:确保只添加一个T元素。
remove(Object o)
:您可以删除T元素,即使它是由Object引用引用的。
例如:
T t = new T();
Set<Short> set = new HashSet<Short>();
Short number = 2;
set.add(number);
Object numberObject = number;
set.remove(numberObject) // it will remove 2 from the set.
为什么要删除其他数据类型?我们没有删除其他数据类型,但我们可以删除数据,即使它被Object引用引用(如示例中所示)。
答案 1 :(得分:0)
remove(obj)
方法删除(obj == null ? e ==null : obj.equals(e))
为true
的对象。这是因为equals(Object)
方法需要Object
,obj
和e
不一定是同一类型。