下面是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),我想在单独的变量中存储“键”和“值”。
当前回答
芬兰湾的科特林回答
获取第一个键,然后获取键的值。Kotlin有first()函数:
val list = HashMap<String, String>() // Dummy HashMap.
val keyFirstElement = list.keys.first() // Get key.
val valueOfElement = list.getValue(keyFirstElement) // Get Value.
其他回答
改进whoami的答案。因为findFirst()返回一个Optional,所以它是 检查是否有值是一个很好的做法。
var optional = pair.keySet().stream().findFirst();
if (!optional.isPresent()) {
return;
}
var key = optional.get();
此外,一些人评论说寻找HashSet的第一个键是不可靠的。但有时我们有HashMap对;也就是说,在每个map中,我们有一个键和一个值。在这种情况下,快速找到这样一对中的第一个键是很方便的。
Java 8的方法,
String firstKey = map.keySet().stream().findFirst().get();
要获得“first”值:
map.values().toArray()[0]
获取"first"键的值:
map.get(map.keySet().toArray()[0])
注意:以上代码已经过测试并正常工作。
我说“first”是因为HashMap条目没有排序。
然而,LinkedHashMap迭代其条目的顺序与它们被插入的顺序相同——如果插入顺序很重要,您可以将其用于映射实现。
你可以试试这个:
Map<String,String> map = new HashMap<>();
Map.Entry<String,String> entry = map.entrySet().iterator().next();
String key = entry.getKey();
String value = entry.getValue();
请记住,HashMap并不保证插入顺序。使用LinkedHashMap来保持顺序的完整性。
Eg:
Map<String,String> map = new LinkedHashMap<>();
map.put("Active","33");
map.put("Renewals Completed","3");
map.put("Application","15");
Map.Entry<String,String> entry = map.entrySet().iterator().next();
String key= entry.getKey();
String value=entry.getValue();
System.out.println(key);
System.out.println(value);
输出:
Active
33
更新: 在Java 8或更高版本中获取第一个密钥。
Optional<String> firstKey = map.keySet().stream().findFirst();
if (firstKey.isPresent()) {
String key = firstKey.get();
}
我们如何收集第一个键值(即33)
通过使用youMap.get(keyYouHave),你可以得到它的值。
想要存储“键”和“值”在单独的变量
是的,你可以把它赋值给一个变量。
等待 .........事情还没有结束。
如果您(业务逻辑)依赖于插入和检索的顺序,那么您将看到奇怪的结果。地图不是有序的,它们不会按顺序存储。请注意这一事实。使用一些替代方案来维护您的订单。可能是LinkedHashMap