Java Collection <Generic Type>排序没有集合

acu*_*joe 3 java collections comparator

我真的被困在学校的任务上.我们正在学习通用类型,也许这不仅是我完全理解它们,而是作为我们必须实现的第一个方法之一的一部分:

我们有:

public static <T> T min(Collection<T> c, Comparator<T> comp) {
        return null
}
Run Code Online (Sandbox Code Playgroud)

和要求:

Collection c供应的定义中选择最小值Comparator comp.IllegalArgumentException 如果c或comp为null,则此方法抛出if,如果c为空,则抛出NoSuchElementExceptionif.此方法不会更改Collection c.

所以我到了这里:

public static <T> T min(Collection<T> c, Comparator<T> comp)
            throws IllegalArgumentException, NoSuchElementException {
        if (c != null && comp != null) {
            if (!c.isEmpty()) {

            } else {
                throw new NoSuchElementException();
            }
        } else {
            throw new IllegalArgumentException();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我们必须使用比较器排序,但不能使用Collections类.我真的需要一些指导才能开始,我不是要求你为我做任务!

Pat*_*ski 6

应该很容易.比较器用于比较两个不用于排序的元素.这里不需要排序.您不想更改集合,只需找到最小值.您可以先取一个并迭代集合,将选择元素与其他元素进行比较,将选择元素切换为另一个元素.这是找到最小值的方法.

  • 迭代的替代方法是使用[Java8折叠](http://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#reduce-T-java.util. function.BinaryOperator-).大多数课程涵盖功能语言部分的折叠,因此教师可能不会反对 (2认同)