Я работаю над реализацией Java BlackBerry j2me, у которой нет API коллекций. Таким образом, нет entrySet()
метода или Map.Entry
класса. Единственными доступными методами для перебора отображений Hashtable
являются методы elements()
и keys()
.
Можно ли ожидать, что elements()
и keys()
вернут одинаковое количество отображений в том же порядке? Если это так, я могу сделать следующее:
Enumeration keys = table.keys();
Enumeration elements = table.elements();
String key, value;
while(keys.hasMoreElements()) {
key = keys.nextElement();
value = elements.nextElement();
}
Я бы подумал, что это так, но документы не говорят наверняка. Если я не могу сделать это предположение, то мне придется перебирать только ключи:
Enumeration keys = table.keys();
String key, value;
while(keys.hasMoreElements()) {
key = keys.nextElement();
// Less efficient b/c I have to do a lookup every time.
value = table.get(key);
}
Редактировать: Можно предположить, что только один поток имеет доступ к таблице.