HashMap - 获取First Key值

Pra*_*abu 100 java hashmap

下面是HashMap中包含的值

statusName {Active=33, Renewals Completed=3, Application=15}
Run Code Online (Sandbox Code Playgroud)

获取第一个密钥的Java代码(即活动)

Object myKey = statusName.keySet().toArray()[0];
Run Code Online (Sandbox Code Playgroud)

我们如何收集第一个键"值"(即33),我想将"键"和"值"存储在单独的变量中.

Ruc*_*era 202

你可以试试这个:

 Map<String,String> map = new HashMap<>();
 Map.Entry<String,String> entry = map.entrySet().iterator().next();
 String key = entry.getKey();
 String value = entry.getValue();
Run Code Online (Sandbox Code Playgroud)

请注意,HashMap不保证插入订单.使用a LinkedHashMap来保持订单完好无损.

例如:

 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);
Run Code Online (Sandbox Code Playgroud)

输出:

 Active
 33
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 51

获得"第一"价值:

map.values().toArray()[0]
Run Code Online (Sandbox Code Playgroud)

要获取"第一个"键的值:

map.get(map.keySet().toArray()[0])
Run Code Online (Sandbox Code Playgroud)

注意:以上代码经过测试和运行.

我说"第一"因为没有订购HashMap条目.

但是,LinkedHashMap以与插入顺序相同的顺序迭代其条目 - 如果插入顺序很重要,您可以将其用于地图实现.


who*_*ami 38

Java 8的做法,

String firstKey = map.keySet().stream().findFirst().get();

  • 如果我们有密钥,请使用map.get(firstKey)检索第一个值。只是一个提示。:) (2认同)
  • 不要使用这种方法!如果“map”变量来自 HashMap 类型,则这将无法可靠地工作,请转换为 Array 或 LinkedHashMap! (2认同)

can*_*ler 9

科特林答案

获取第一个键,然后获取键的值。Kotlin 有“ first() ”函数:

val list = HashMap<String, String>() // Dummy HashMap.

val keyFirstElement = list.keys.first() // Get key.

val valueOfElement = list.getValue(keyFirstElement) // Get Value.
Run Code Online (Sandbox Code Playgroud)


Geo*_*lou 6

您也可以尝试使用此方法获取完整的第一个条目,

Map.Entry<String, String> entry = map.entrySet().stream().findFirst().get();
String key = entry.getKey();
String value = entry.getValue();
Run Code Online (Sandbox Code Playgroud)

这仅获得第一个条目的密钥,

String key = map.entrySet().stream().map(Map.Entry::getKey).findFirst().get();
// or better
String key = map.keySet().stream().findFirst().get();
Run Code Online (Sandbox Code Playgroud)

这仅获得第一个条目的值,

String value = map.entrySet().stream().map(Map.Entry::getValue).findFirst().get();
// or better
String value = map.values().stream().findFirst().get();
Run Code Online (Sandbox Code Playgroud)

此外,如果您知道自己在做什么,并且希望获得地图的第二项(与第三项相同),则应该尝试这样做,

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();
Run Code Online (Sandbox Code Playgroud)