我是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;
}
但我收到错误消息,说我不能使用>
或<
。
答案 0 :(得分: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
进行比较。