2010-11-03 2 views
1

Что я делаю, это хранение классов в ArrayList и получение их по его номеру индекса. Но существуют ли классы классов в Java, где я могу получить элемент списка, скажем, его имя? Как это:Получить элемент ArrayList путем пользовательской индексации текста

ArrayList<string> myArr = new ArrayList<string>(); 
myArr.add("ID_name", "String to store"); 

ANDS затем получить его:

myArr.get("ID_name"); 

Кроме того, есть ли другие альтернативы ArrayList? Мне нужен класс список должен быть оптимизирован для:

  • Случайный доступ
  • Только нужно нажать элементы в список
  • Никогда не нужно ничего удалять из списка

ответ

6

Если все, что вы хотите хранить в пар ключ-значение, а не заботиться о итерация порядке, я думаю, вы могли бы класс HashMap:

Map<String, String> map = new HashMap<String, String>(); 
map.put("foo", "bar"); 
String bar = map.get("foo"); // bar is "bar" 
2

ArrayList просто что: массив. Если вы хотите получить доступ к значениям, отличным от их индексов, найдите различные реализации интерфейса карты (например, HashMap).

1

Использовать Map<String, String>. В такой структуре элемент добавляется ключом. Таким образом, вы можете получить элемент с помощью клавиши:

Map<String, String> map = new HashMap<String, String>(); 
map.put("id", "string"); 
String s = map.get("id"); // s will be equals to "string". 
3

Вы можете использовать LinkedHashMap, поэтому он сохранит заказ, но вы можете извлекать элементы с помощью ключа, как на обычной карте. Хотя вы не сможете извлекать записи по индексу.

1

Как уже упоминалось, HashMap - это, вероятно, то, что вы хотите, если вам не нужен порядок итераций.

Если вы это сделаете, вы можете использовать LinkedHashMap, который действительно является HashMap, прикрепленным к LinkedList, что дает вам лучшее из обоих миров: быстрый случайный доступ и сохранение порядка итераций.

0

Используйте хэш-карту. Вы можете добавлять элементы в хэш-карту так же, как и для arraylist. Кроме того, вы можете создать набор ключей (1 элемент в паре set (ключ, значение))). Затем вы можете перебирать набор ключей.

Смежные вопросы