Java 集合<Generic Type> 不使用集合进行排序
Java Collection<Generic Type> Sorting without Collections
我真的被学校作业困住了。我们正在学习泛型类型,也许这不仅仅是我完全理解它们,而是作为我们必须实现的第一个方法之一的一部分:
我们有:
public static <T> T min(Collection<T> c, Comparator<T> comp) {
return null
}
以及要求:
从 Collection c
中选择最小值,由
提供 Comparator comp
。此方法抛出 IllegalArgumentException
如果 c 或 comp 为 null,则抛出 NoSuchElementException
if c
是空的。 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();
}
}
我们必须使用比较器进行排序,但不能使用集合 class。我真的只是需要一些指导才能开始,我不是要你帮我做作业!
应该很容易。比较器用于比较两个不用于排序的元素。这里不需要排序。你不想改变集合,只是找到最小值。您可以只取第一个并遍历集合,将选择的元素与其他元素进行比较,当它更大时将选择的元素切换到另一个。这是找到最小值的方法。
您需要添加到示例中的伪代码:
- 保存变量调用中的第一个元素"minimum"。因为它被声明为泛型,所以对象的类型是 T.
- 迭代集合(提示:每个集合都有一个迭代器)
- 将每个元素与找到的 "minimum" 进行比较。如果低于则分配给最小值。
- Return 变量最小值。
我不会放代码,因为这是作业,你需要熟悉语法。
我真的被学校作业困住了。我们正在学习泛型类型,也许这不仅仅是我完全理解它们,而是作为我们必须实现的第一个方法之一的一部分:
我们有:
public static <T> T min(Collection<T> c, Comparator<T> comp) {
return null
}
以及要求:
从 Collection c
中选择最小值,由
提供 Comparator comp
。此方法抛出 IllegalArgumentException
如果 c 或 comp 为 null,则抛出 NoSuchElementException
if c
是空的。 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();
}
}
我们必须使用比较器进行排序,但不能使用集合 class。我真的只是需要一些指导才能开始,我不是要你帮我做作业!
应该很容易。比较器用于比较两个不用于排序的元素。这里不需要排序。你不想改变集合,只是找到最小值。您可以只取第一个并遍历集合,将选择的元素与其他元素进行比较,当它更大时将选择的元素切换到另一个。这是找到最小值的方法。
您需要添加到示例中的伪代码:
- 保存变量调用中的第一个元素"minimum"。因为它被声明为泛型,所以对象的类型是 T.
- 迭代集合(提示:每个集合都有一个迭代器)
- 将每个元素与找到的 "minimum" 进行比较。如果低于则分配给最小值。
- Return 变量最小值。
我不会放代码,因为这是作业,你需要熟悉语法。