gpt4 book ai didi

java - ocpjp 示例问题中的比较器问题

转载 作者:行者123 更新时间:2023-12-01 14:24:08 25 4
gpt4 key购买 nike

我目前正在准备 Java SE 7 程序员考试,并尝试解决 Oracle 站点上的示例问题。我被困在这个:

import java.util.*;
public class Primes2 {
public static void main(String[] args) {
Integer[] primes = {2, 7, 5, 3};
MySort ms = new MySort();
Arrays.sort(primes, ms);
for(Integer p2: primes)
System.out.print(p2 + " ");
}
static class MySort implements Comparator {
public int compare(Integer x, Integer y) {
return y.compareTo(x);
}
}
}

结果如何?

A) 2 3 5 7

乙) 2 7 5 3

C) 7 5 3 2

D) 编译失败。

E) 运行时抛出异常。

问题可以在这里找到: http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=303&p_certName=SQ1Z0_804

网站上指出的正确答案是 C。我测试了代码,发现它没有编译,因为 Comparator 是参数化的,并且在给定的代码中没有指明类型,因此编译器需要比较方法的 Object 参数。当我用 Comparator<Integer> 更改 Comparator 时,错误已解决,并按预期工作。

我的问题是原始代码中的声明是否遵守 Java 7 的标准并且应该编译。

最佳答案

实际上,这不会编译。

为了有效,要么Comparator必须输入为 Comparator<Integer>compare()方法参数必须是 Object类型。

因此,该试题无效。

关于java - ocpjp 示例问题中的比较器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404870/

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