我收到了一个问题:
通过存储类型的数据成员来编写TreeMap类的实现
TreeSet <Map.Entry<KeyType,ValueType>>
。
我很难,我应该像Treeset +实现Map接口一样创建一个树形图类,它们是什么意思&#34;存储类型TreeSet<<Map.Entry<KeyType,ValueType>>
&#34; <的数据成员/ p>
如何将通用设为<Map.Entry<KeyType,ValueType>>
答案 0 :(得分:3)
通过存储
TreeMap
类型的数据成员来编写TreeSet <Map.Entry<KeyType,ValueType>>
类的实现
通过&#34;编写TreeMap类&#34; 的实现,我将其解释为实现您自己的类的意义,其行为类似于内置的TreeMap
类,即NavigableMap
接口的实现。
通过&#34; 存储类型为X的数据成员&#34;,我将其解释为具有类型X字段的类的含义。
所以,你需要实现这个类:
public class MyTreeMap<KeyType, ValueType> implements NavigableMap<KeyType, ValueType> {
private TreeSet<Map.Entry<KeyType, ValueType>> data;
// your code here
}
为方便起见,以下是一些(简单)方法:
public Set<Map.Entry<KeyType, ValueType>> entrySet() {
return this.data;
}
public void clear() {
this.data.clear();
}
public int size() {
return this.data.size();
}
<强>更新强>
我的解释是TreeSet
使用Comparator
比较Entry
按键,以便您可以执行以下操作(伪代码):
public ValueType get(Object key) {
Entry<...> dummy = new DummyEntry<...>(key);
Entry<...> found = this.data.ceiling(dummy);
if (found != null && comparator.compare(found, dummy) == 0)
return found.getValue();
return null;
}