Java 用泛型搜索数组中的最大元素
任务: 编写一个泛型方法来查找列表范围[begin,end]中的最大元素 答复:Java 用泛型搜索数组中的最大元素,java,generics,Java,Generics,任务: 编写一个泛型方法来查找列表范围[begin,end]中的最大元素 答复: public final class Algorithm { public static <T extends Object & Comparable<? super T>> T max(List<? extends T> list, int begin, int end) { T maxElem = list.get(begin
public final class Algorithm {
public static <T extends Object & Comparable<? super T>>
T max(List<? extends T> list, int begin, int end) {
T maxElem = list.get(begin);
for (++begin; begin < end; ++begin)
if (maxElem.compareTo(list.get(begin)) < 0)
maxElem = list.get(begin);
return maxElem;
}
}
公共最终类算法{
公共静态问题:公共静态之间的区别我假设这里有两个问题:
- 为什么需要边界
对象
- 为什么要使用
可比性我不明白“我可以使用哪些类型?”你的问题的一部分。你可以使用任何扩展可比接口的类型,否则它不能保证有compareTo
函数。@Boristeider是的,只要阅读你提供的链接并删除我的评论……我每天都会学到一些新的东西为什么否决?这是一个好问题,它甚至会让经验丰富的Java开发人员感到困惑@Boristeider:我认为这可能是一个好问题。但是,现在我认为它的表达不是特别清楚(“我可以使用哪些类型?”甚至是什么意思?)[顺便说一句,我没有投反对票。]
public static <T extends Comparable<T>>
T max(List<? extends T> ar, int begin, int end) { ... }
public class A implements Comparable<A> {}
public class B extends A {}
class Employee implements Comparable<Employee> { }
class PartTimeEmployee extends Employee { }
T extends Comparable<? super T>
class PartTimeEmployee extends Employee implements Comparable<PartTimeEmployee>
compareTo(PartTimeEmployee)
compareTo(Employee)
compareTo(Object)
compareTo(Object)