gpt4 book ai didi

java - 如何在构造函数内实例化比较器

转载 作者:行者123 更新时间:2023-12-02 00:36:09 28 4
gpt4 key购买 nike

我从未见过在 TreeMap 结构的构造函数内部创建比较器。人们会如何去做这件事呢?有没有办法让 TreeMap() 构造函数调用另一个具有比较器参数的 TreeMap 构造函数来设置比较器?

private Comparator<? super K> cmp;
private Node root;
private int size;
private final String indentStr = " ";

public TreeMap() {
// Create cmp assuming K implements Comparator
//??? TreeMap(new Comparator<V>());
}

public TreeMap(Comparator<? super K> cmp) {
this.cmp = cmp;
}

最佳答案

他们通常将该字段设置为 null,而不是实例化某些内容。

但如果你愿意,你可以:

this(new Comparator<K>() {
public int compare(K k1, K k2) {
return ((Comparable<K>) k1).compareTo(k2);
}
});

问题是可能会发生 ClassCastException,因为您不知道元素的类型。

关于java - 如何在构造函数内实例化比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774249/

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