gpt4 book ai didi

java - 如何重写compareTo方法?

转载 作者:行者123 更新时间:2023-12-02 01:23:05 28 4
gpt4 key购买 nike

我想重写 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/

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