получить последний элемент из связанного hashmap, возвращенного из слоя дао? - PullRequest
1 голос
/ 08 марта 2012

У меня есть LinkedHashMap, возвращающийся из БД. Из этой карты мне нужно получить именно последний элемент (ключ). Если я получаю все ключи, используя метод keySet, он возвращает Set ключей, но Set не гарантирует порядок. мне нужно взять точно последний ключ из связанного hashmap, возвращенного из БД. как я могу это сделать?

ниже приведен код получения данных из базы данных.

LinkedHashMap<String,String> map = someDao.getMap(String input);

с этой карты мне нужно взять последний элемент.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 08 марта 2012

keySet() при выполнении LinkedHashMap возвращает LinkedHashSet, что действительно Set, но "запоминает" порядок элементов.

Вы можете получить последний элемент следующим образом:

Map<TheType> map = .....
.................
TheType theLastKey = new ArrayList<>(map.keySet()).get(map.size() - 1)
0 голосов
/ 12 июня 2014

Ответ из другого поста помог мне с этим ответом.Просьба ссылаться Java HashMap: Как получить ключ и значение по индексу? для исходного сообщения.

Object myKey = myHashMap.keySet().toArray()[0];

, где я заменил 0

toArray()[0]  - (where 0 represents the first item in the keyset)

с размером набора ключей

toArray()[(keyset().size)-1] 

Примечание: без -1 в конце вы получите ArrayIndexOutOfBoundsException.

...