我想重写 compareTo
方法。我用谷歌搜索,但找不到任何有用的东西,因为我的 K 没有具体定义(它不像具有姓名、年龄的 People(类示例))。
我有无法编辑的 Node.java 文件。
public class Node<K extends Comparable<K>, V>
{
public K key;
public V value;
public Node<K, V> parent;
public Node<K, V> left;
public Node<K, V> right;
public Node(K key, V value, Node<K, V> parent, Node<K, V> left, Node<K, V> right)
{
this.key = key;
this.value = value;
this.parent = parent;
this.left = left;
this.right = right;
}
}
我还有另一个文件 Heap.java
public class Heap<K extends Comparable<K>, V> {...}
我想重写Heap.java中的compareTo方法(在{..}
这里!),这样我就可以比较Node的键并对它们进行排序。
最佳答案
而不是覆盖 compareTo
,您可以创建 Comparator<Node>
像这样:
Comparator<Node<K extends Comparable<K>>, V> comparator =
Comparator.comparing(node -> node.key);
您可以在大多数库方法中使用它进行排序,例如,在排序映射的情况下,您可以传递比较器。
但请注意,拥有公钥字段不是一个好主意。它本身就已经够糟糕的了,但如果你用它来存储它就更糟糕了,因为当其他人改变字段时你会弄乱短路。
关于java - 如何重写compareTo方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57344460/