【发布时间】:2014-03-15 10:30:50
【问题描述】:
任务:
编写一个通用方法来查找列表的 [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);
for (++begin; begin < end; ++begin)
if (maxElem.compareTo(list.get(begin)) < 0)
maxElem = list.get(begin);
return maxElem;
}
}
你能解释一下如何使用这个方法吗?和下面的签名有什么区别:
public static <T extends Comparable<T>>
T max(List<? extends T> ar, int begin, int end) { ... }
【问题讨论】:
-
我不明白您问题的“我可以使用哪些类型?”。
-
可以使用任何扩展Comparable接口的类型,否则不保证有
compareTo函数。 -
@BoristheSpider 是的,只需阅读您提供的链接并删除我的评论...我每天都学到新东西
-
为什么投反对票?这是一个很好的问题,即使是经验丰富的 Java 开发人员也会感到困惑。
-
@BoristheSpider:我认为这有可能成为一个好问题。但是,现在我认为它的表达不是特别好(“我可以使用哪些类型?”甚至是什么意思?)[顺便说一句,我没有投反对票。]