1

我有从数据库返回的 LinkedHashMap。从这张地图我需要得到最后一个元素(键)。如果我使用 keySet 方法获取所有键,它会返回 Set of keys 但 Set 不保证顺序。我需要从 db 返回的链接哈希图中准确获取最后一个键。我怎样才能做到这一点 ?

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

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

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

谢谢!

4

2 回答 2

6

keySet()LinkedHashMap返回LinkedHashSet时执行,但实际上是Set“记住”元素的顺序。

您可以获得最后一个元素,如下所示:

Map<TheType> map = .....
.................
TheType theLastKey = new ArrayList<>(map.keySet()).get(map.size() - 1)
于 2012-03-08T11:15:38.103 回答
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。

于 2014-06-12T15:18:43.067 回答