gpt4 book ai didi

java - 使用 Comparable 接口(interface)的匿名内部类

转载 作者:行者123 更新时间:2023-12-02 10:44:40 27 4
gpt4 key购买 nike

当我尝试使用类似的接口(interface)创建匿名内部时,我收到编译错误。

//Code trying to create treeset using comparable
// compilation error
TreeSet<String> treeSet5 = new TreeSet<String>(new Comparable<String>() {
@Override
public int compareTo(String o) {
// TODO Auto-generated method stub
return 0;
}
});
// CE:The constructor TreeSet<String>(new Comparable<String>(){}) is undefined

我知道对于自定义排序,我们需要使用比较器,但我很好奇为什么我们不能创建可比较的匿名类。

//Custom sorting: default sorting as String implements comparable
// below code is fine as its working as expected.
TreeSet<String> treeSet2 = new TreeSet<String>(new Comparator<String>() {

@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);

}
});

最佳答案

  1. 可以通过比较两个实体来完成排序。
  2. 排序 Util 类(如 TreeSet)需要 Comparator,因为它有两个可以比较的参数。
  3. Comparable 没有足够的信息来比较如何与其他元素进行比较。
<小时/>

问:现在你会问Sorting Item实现Comparable时是如何工作的?

A:在这种情况下,排序项是第一个要比较的项,其他元素将传递给其方法compareTo(String o)

关于java - 使用 Comparable 接口(interface)的匿名内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52675581/

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