Java 如何将泛型设置为<;地图入口<;键类型、值类型>&燃气轮机;
我收到一个问题: 通过存储类型为的数据成员来编写TreeMap类的实现 树集Java 如何将泛型设置为<;地图入口<;键类型、值类型>&燃气轮机;,java,Java,我收到一个问题: 通过存储类型为的数据成员来编写TreeMap类的实现 树集 我想我应该创建一个类似Treeset+实现映射接口的treemap类,它们是什么意思“存储Treeset类型的数据成员?” 通过存储类型为TreeSet 通过“编写TreeMap类的实现”,我将其理解为用类似于内置类的行为实现您自己的类,即接口的实现 通过“存储一个X类型的数据成员”,我将其解释为对具有X类型字段的类的意义 因此,您需要实现这个类: public class MyTreeMap<KeyType,
我想我应该创建一个类似Treeset+实现映射接口的treemap类,它们是什么意思“存储Treeset类型的数据成员?”
通过存储类型为TreeSet
通过“编写TreeMap类的实现”,我将其理解为用类似于内置类的行为实现您自己的类,即接口的实现
通过“存储一个X类型的数据成员”,我将其解释为对具有X类型字段的类的意义
因此,您需要实现这个类:
public class MyTreeMap<KeyType, ValueType> implements NavigableMap<KeyType, ValueType> {
private TreeSet<Map.Entry<KeyType, ValueType>> data;
// your code here
}
通过存储类型为TreeSet
通过“编写TreeMap类的实现”,我将其理解为用类似于内置类的行为实现您自己的类,即接口的实现
通过“存储一个X类型的数据成员”,我将其解释为对具有X类型字段的类的意义
因此,您需要实现这个类:
public class MyTreeMap<KeyType, ValueType> implements NavigableMap<KeyType, ValueType> {
private TreeSet<Map.Entry<KeyType, ValueType>> data;
// your code here
}
@ElliottFrisch实现了
NavigableMap
,而不仅仅是Map
@Andreas我最初发布的TreeSet TreeSet=new TreeSet()
,然后我觉得还需要一点……比如KeyType
和ValueType
来自哪里。@ElliottFrisch我的评论是关于你的可能,也就是说implements Map
,应该是implements NavigableMap
@ElliottFrisch implementsNavigableMap
,而不仅仅是Map
。@Andreas我最初刚刚发布了TreeSet TreeSet=new TreeSet()
,然后我觉得还需要一点……比如KeyType
和ValueType
的来源。@ElliottFrisch我的评论是关于你的maybe,也就是说implements Map
,应该是implements NavigableMap
。你的数据默认为null
。应该初始化它在某个地方(否则,答案很好)@ElliottFrisch True,但我没有显示任何可能会初始化该字段的构造函数,因为TreeSet
可能需要正确初始化构造函数参数值,前提是您希望实现内置TreeMap
所具有的构造函数参数值。您的数据默认为null
可能会在某个地方初始化它(否则,答案很好)。@ElliottFrisch True,但我没有显示任何可能会在那里初始化字段的构造函数,因为TreeSet
可能需要正确初始化构造函数参数值,假设您想要实现内置TreeMap
所具有的相同功能。
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;
}