Заказанная Реализация Map Списка в Java

while(/\G(\b\w*\b)/g) {
     print "$1\n";
}

\G привязка. жарко .

19
задан hopper 20 August 2013 в 15:10
поделиться

7 ответов

Если вам нужны элементы в определенном порядке, LinkedHashMap - ваш друг - он хранит элементы в порядке вставки. TreeMap будет хранить ваши элементы в порядке, определенном либо указанным вами Comparator, либо методом compareTo ключа.

35
ответ дан 30 November 2019 в 02:03
поделиться

Для упорядоченной карты см. LinkedHashMap . Это сохранит ваши ключи в порядке вставки.

Если вы используете SortedMap , он сохранит ключи в отсортированном порядке. ( TreeMap является наиболее распространенной реализацией.)

Вы можете использовать map.entrySet () . Это позволит вам перебирать набор MapEntries.

Подробнее читайте в javadoc .

19
ответ дан 30 November 2019 в 02:03
поделиться

, вы можете использовать метод Map.values ​​() , который возвращает Коллекция .

3
ответ дан 30 November 2019 в 02:03
поделиться

Это дает вам коллекцию сохраненных значений

myMap.values()
2
ответ дан 30 November 2019 в 02:03
поделиться

Попробуйте следующее:

for (Image img : myMap.values()) {
    // the image is img
}

Для сортировки карты посмотрите реализации java.util.SortedMap . java.util.TreeMap - наиболее частый выбор. Если вам нужен только гарантированный порядок итераций, вы можете попробовать java.util.LinkedHashMap . Он предлагает итерацию в том же порядке, в котором вы размещаете элементы на карте. Или, необязательно, в порядке последнего доступа. Если вы хотите переместить ключ (однажды добавленный) в конец карты, вы должны явно удалить его и поставить снова.

2
ответ дан 30 November 2019 в 02:03
поделиться

вы можете использовать TreeMap , он сортируется в соответствии с естественным порядком его ключей или компаратором, предоставленным во время создания карты:

TreeMap<String, Image> mapByName = new TreeMap<String, Image>(new ByNameComparator());

где ByNameComparator () - это компаратор. В качестве альтернативы вы можете использовать метод values ​​() и сортировать с помощью Collections.sort ():

Collection<Image> images = mapByName.values();
Collections.sort(images, new BySizeComparator());
0
ответ дан 30 November 2019 в 02:03
поделиться

У вас уже есть несколько практических ответов. Но отвечая прямо на вопрос ...

Я бродил, есть ли там класс, реализующий интерфейсы Map и List в Java.

... стоит упомянуть, что это просто невозможно. Препятствием является метод remove (Object) .

В интерфейсе Map его подпись:

V remove(Object key);

А в интерфейсе List это:

boolean remove(Object o);
8
ответ дан 30 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: