gpt4 book ai didi

java - 泛型列表接口(interface)

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:15 26 4
gpt4 key购买 nike

List界面如下:

public interface List<E>{
public boolean add(Object e);
public boolean remove(Object e);
public boolean contains(Object e);
...etc

为什么 add、remove 和 contains 方法不是这样写的?

public boolean add(E e)
public boolean remove(E e)
public boolean contains(E e)

最佳答案

添加方法是add(E e) , 因此在这方面世界上一切都是正确的。

remove(Object o)contains(Object o)方法将基于 o.equals(e) 进行操作。这允许您使用不一定是集合中对象类型的特殊用途比较对象来做一些棘手的事情。

List<Integer> list = Arrays.asList(20, 30, 40, 50, 100);
boolean moreThan60 = list.contains(new Object() {
public boolean equals(Object rhs) {
return ((Integer)rhs) > 60;
}
});
System.out.println("moreThan60 = " + moreThan60);

并不是说这总是推荐的,甚至不是最佳实践。但这是一个巧妙的技巧。

关于java - 泛型列表接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770394/

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