【发布时间】:2014-12-01 12:55:55
【问题描述】:
以下是HashMap中包含的值
statusName {Active=33, Renewals Completed=3, Application=15}
获取第一个 Key(即 Active)的 Java 代码
Object myKey = statusName.keySet().toArray()[0];
我们如何收集第一个键“值”(即 33),我想将“键”和“值”存储在单独的变量中。
【问题讨论】:
-
您确实意识到
HashMap条目是无序的,因此每当您修改地图时“first”可能会改变? -
您知道
HashMap中没有特定的顺序吗?如果你完全修改它,你可能会以完全不同的顺序得到结果。 -
不,顺序不保证从运行到运行,但在同一个线程内,顺序是可以依赖的。
-
@JonSkeet 实际上这是一个非常有效的问题。在 Groovy 中有很多情况下,您会得到一个看起来像一个映射列表的结构,每个映射都有一个条目。到目前为止,我还没有找到一种简单/明显(Groovy)的方式来打印所有值。如果键是常量,则像 collection.each{println it.key} 一样简单地打印出每个值,但是没有常量键并不明显,但是 collection.each{println it.values()[0]} 可以工作(这里的一些答案的改进......)。
-
@BillK:如果您知道每张地图都只有一个条目,那么这确实是一个不同的问题,而且更有意义。