下面是HashMap中包含的值
statusName {Active=33, Renewals Completed=3, Application=15}
获取第一个Key(即Active)的Java代码
Object myKey = statusName.keySet().toArray()[0];
我们如何收集第一个键“值”(即33),我想在单独的变量中存储“键”和“值”。
下面是HashMap中包含的值
statusName {Active=33, Renewals Completed=3, Application=15}
获取第一个Key(即Active)的Java代码
Object myKey = statusName.keySet().toArray()[0];
我们如何收集第一个键“值”(即33),我想在单独的变量中存储“键”和“值”。
当前回答
你也可以尝试下面的方法来获得完整的第一项,
Map.Entry<String, String> entry = map.entrySet().stream().findFirst().get();
String key = entry.getKey();
String value = entry.getValue();
下面展示了如何获得第一个条目的密钥,
String key = map.entrySet().stream().map(Map.Entry::getKey).findFirst().get();
// or better
String key = map.keySet().stream().findFirst().get();
下面展示了如何获取第一个条目的值,
String value = map.entrySet().stream().map(Map.Entry::getValue).findFirst().get();
// or better
String value = map.values().stream().findFirst().get();
此外,如果希望获得地图的第二个(第三个等)项,并且您已经验证该地图包含至少2个条目,您可以使用以下方法。
Map.Entry<String, String> entry = map.entrySet().stream().skip(1).findFirst().get();
String key = map.keySet().stream().skip(1).findFirst().get();
String value = map.values().stream().skip(1).findFirst().get();
其他回答
要获得“first”值:
map.values().toArray()[0]
获取"first"键的值:
map.get(map.keySet().toArray()[0])
注意:以上代码已经过测试并正常工作。
我说“first”是因为HashMap条目没有排序。
然而,LinkedHashMap迭代其条目的顺序与它们被插入的顺序相同——如果插入顺序很重要,您可以将其用于映射实现。
你也可以尝试下面的方法来获得完整的第一项,
Map.Entry<String, String> entry = map.entrySet().stream().findFirst().get();
String key = entry.getKey();
String value = entry.getValue();
下面展示了如何获得第一个条目的密钥,
String key = map.entrySet().stream().map(Map.Entry::getKey).findFirst().get();
// or better
String key = map.keySet().stream().findFirst().get();
下面展示了如何获取第一个条目的值,
String value = map.entrySet().stream().map(Map.Entry::getValue).findFirst().get();
// or better
String value = map.values().stream().findFirst().get();
此外,如果希望获得地图的第二个(第三个等)项,并且您已经验证该地图包含至少2个条目,您可以使用以下方法。
Map.Entry<String, String> entry = map.entrySet().stream().skip(1).findFirst().get();
String key = map.keySet().stream().skip(1).findFirst().get();
String value = map.values().stream().skip(1).findFirst().get();
你也可以试试下面的方法:
Map.Entry<String, Integer> entry = myMap.firstEntry();
System.out.println("First Value = " + entry);
改进whoami的答案。因为findFirst()返回一个Optional,所以它是 检查是否有值是一个很好的做法。
var optional = pair.keySet().stream().findFirst();
if (!optional.isPresent()) {
return;
}
var key = optional.get();
此外,一些人评论说寻找HashSet的第一个键是不可靠的。但有时我们有HashMap对;也就是说,在每个map中,我们有一个键和一个值。在这种情况下,快速找到这样一对中的第一个键是很方便的。
这也是一个很好的方法:)
Map<Integer,JsonObject> requestOutput = getRequestOutput(client,post);
int statusCode = requestOutput.keySet().stream().findFirst().orElseThrow(() -> new RuntimeException("Empty"));