2010-11-30 24 views
1

问题很简单 - 我必须实现JTree TreeModel接口,它要求每个对象都有一个数字。该树将代表保存在hashmap/hashtable中的数据。该hashmap中的键是客户端对象,值是资源(或ArrayLists)的数组,因此编号只是顶级问题。在Hashmap/Hashtable中键数字的最简单方法是什么?Java HashMap/Hashtable和编号

回答

1
public class IndexedMap<V> extends HashMap<Long, V> { 
    private AtomicLong index = new AtomicLong(); 

    public void put(V value) { 
     put(index.getAndIncrement(), value); 
    } 
} 

IndexedMap<Object> objects = new IndexedMap<Object>(); 
objects.put("foo"); 
objects.put("bar"); 
// ... 

但你为什么不只是使用一个ArrayList?它通过索引来保存对象,正是你所需要的。

0

听起来像用户对象键需要订购 - 他们的“数字”将从他们在排序中的位置派生。

钥匙是否可比?如果是这样,也许使用一个TreeMap。如果不是,我想插入顺序是你最好的选择(LinkedHashMap)