0

我是 Java 新手,我有一个问题。我需要一个类来存储两个值,一个被调用key,一个被调用value。该类可以存储对象,返回value并允许通过比较键值来比较两个对象。

public class Entry <K,V> implements Comparable<Entry<K,V>> 
{
    private K key;
    private V value;

    public Entry(K key,V value)
    {
        this.key=key;
        this.value=value;
    }

    public void setValue(V value)
    {
        this.value=value;
    }

    public String toString()
    {
        return "key= "+key+" value=" +value;
    }
}

他现在要求我添加Comparable方法。我也可以使用equalsTo(Object)。我该如何实施Comparable?我试过了

public Comparable(k key)
{
    if (this.k < k)
        return -1; 

    if (this.k > k)
        return 1;

    else return 0;
}

但我收到一条错误消息,说我不允许使用>or <

4

1 回答 1

6

这里的其他答案似乎对泛型和Comparable interface.

这是一些将编译的代码:

public class Entry<K extends Comparable<K>, V> implements Comparable<Entry<K, V>> {

    private final K key;
    private V value;

    public Entry(K key, V value) {
        this.key = key;
        this.value = value;
    }   

    @Override
    public int compareTo(Entry<K, V> other) {
        return key.compareTo(other.key);
    }
}

因此,您强制密钥的类型也扩展Comparable到自身;然后,您使用它的compareTo方法根据键将您的方法Entry与其他方法进行比较Entry

于 2013-05-26T17:39:09.187 回答