我正在阅读作为Java集合框架一部分的树集。如果树集将其元素存储在表单对中,我会坚持使用方面吗?
答案 0 :(得分:2)
TreeSet的API就可比较对象而言,但它使用了TreeMap,其中每个键值对都具有相同的虚拟对象PRESENT。查看the code,这是:
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
例如,add实现为:
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
地图要求按键具有唯一性,因此它们只是集合的更通用版本,并具有所有必要的机制。但是我们只需要地图的一半,即键,并且可以用一个虚拟值替换不同的值。