我正试图从该地图中以Groovy方式获取最后一个KEY。但是,似乎groovy没有返回映射中最后一个键的方法。
def person = [fname: "john", sname: "smith", age: 25]
我尝试过person.lastKey()
和person.lastEntry()
,但这些方法似乎仅适用于java
。
答案 0 :(得分:3)
您可以使用person.keySet()[-1]
或person.keySet().last()
要获取完整条目,请使用entrySet()
而不是keySet()
答案 1 :(得分:2)
lastKey
是SortedMap
界面的一部分,Groovy映射文字为您提供了LinkedHashMap
,这是解释您尝试失败的原因。
Map
(接口SortedMap
的继承)本身没有经过排序或排序。因此,您在这里要查询的内容仅适用于有序(Groovy地图文字会给您提供)或排序后的地图,因此请确保您拥有其中之一,否则您将看到随机元素,而不是最后看到的元素。如果顺序很重要,请考虑使用键值元组列表。