0

私はJavaが初めてで、問題があります。keyと呼ばれる値とと呼ばれる値の 2 つの値を格納するクラスが必要valueです。このクラスは、オブジェクトを格納valueし、キー値を比較することで 2 つのオブジェクトを比較して返すことができます。

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と比較します。EntryEntry

于 2013-05-26T17:39:09.187 に答える