我有从数据库返回的 LinkedHashMap。从这张地图我需要得到最后一个元素(键)。如果我使用 keySet 方法获取所有键,它会返回 Set of keys 但 Set 不保证顺序。我需要从 db 返回的链接哈希图中准确获取最后一个键。我怎样才能做到这一点 ?
下面是我如何从数据库中获取数据的代码。
LinkedHashMap<String,String> map = someDao.getMap(String input);
从这张地图我需要采取最后一个元素。
谢谢!
我有从数据库返回的 LinkedHashMap。从这张地图我需要得到最后一个元素(键)。如果我使用 keySet 方法获取所有键,它会返回 Set of keys 但 Set 不保证顺序。我需要从 db 返回的链接哈希图中准确获取最后一个键。我怎样才能做到这一点 ?
下面是我如何从数据库中获取数据的代码。
LinkedHashMap<String,String> map = someDao.getMap(String input);
从这张地图我需要采取最后一个元素。
谢谢!
keySet()
在LinkedHashMap
返回LinkedHashSet
时执行,但实际上是Set
“记住”元素的顺序。
您可以获得最后一个元素,如下所示:
Map<TheType> map = .....
.................
TheType theLastKey = new ArrayList<>(map.keySet()).get(map.size() - 1)
来自不同帖子的回答帮助我回答了这个问题。请参考 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。