从dao层返回的链接hashmap中获取最后一个元素?

时间:2012-03-08 11:04:02

标签: java linkedhashmap

我从db返回LinkedHashMap。从这张地图我需要得到确切的最后一个元素(键)。如果我使用keySet方法获取所有键,则返回Set of keys但Set不保证顺序。我需要从db返回的链接hashmap中取出最后一个键。我怎么能这样做?

下面是我从数据库获取数据的代码。

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

从这张地图我需要采取最后一个元素。

谢谢!

2 个答案:

答案 0 :(得分:6)

keySet()上执行的{p> LinkedHashMap会返回LinkedHashSet Set,但确实会“记住”元素的顺序。

您可以获得以下最后一个元素:

Map<TheType> map = .....
.................
TheType theLastKey = new ArrayList<>(map.keySet()).get(map.size() - 1)

答案 1 :(得分:0)

来自不同帖子的回答帮助我得到了这个答案。请参考 原始帖子Java HashMap: How to get a key and value by index?

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

我已经取代了0

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

使用键集的大小

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

注意:如果最后没有-1,你将得到一个ArrayIndexOutOfBoundsException。