Java Hashmap / Hashtable и нумерация - PullRequest
1 голос
/ 30 ноября 2010

вопрос прост - мне нужно реализовать интерфейс JTree TreeModel, который требует, чтобы у каждого объекта был номер. Дерево будет представлять данные, которые хранятся в hashmap / hashtable. Ключи в этом hashmap являются клиентскими объектами, а значения - массивами ресурсов (или ArrayLists), поэтому нумерация является проблемой только на верхнем уровне. Какой самый простой способ для нумерации ключей в Hashmap / Hashtable?

Ответы [ 2 ]

1 голос
/ 30 ноября 2010
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 голосов
/ 30 ноября 2010

Похоже, что ключи пользовательского объекта должны быть упорядочены - их "число" будет получено из их места в заказе.

Являются ли ключи сопоставимыми?Если так, возможно, используйте TreeMap.Если нет, то я полагаю, что порядок размещения - ваш лучший выбор (LinkedHashMap)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...