下面是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.

其他回答

Java 8的方法,

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

芬兰湾的科特林回答

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

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

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

val valueOfElement = list.getValue(keyFirstElement) // Get Value.

记住,一般来说,插入顺序在映射中是不受尊重的。试试这个:

    /**
     * Get the first element of a map. A map doesn't guarantee the insertion order
     * @param map
     * @param <E>
     * @param <K>
     * @return
     */
    public static <E,K> K getFirstKeyValue(Map<E,K> map){
        K value = null;
        if(map != null && map.size() > 0){
            Map.Entry<E,K> entry =  map.entrySet().iterator().next();
            if(entry != null)
                value = entry.getValue();
        }
        return  value;
    }

我只在确定map.size() == 1时才使用它。

我们如何收集第一个键值(即33)

通过使用youMap.get(keyYouHave),你可以得到它的值。

想要存储“键”和“值”在单独的变量

是的,你可以把它赋值给一个变量。

等待 .........事情还没有结束。

如果您(业务逻辑)依赖于插入和检索的顺序,那么您将看到奇怪的结果。地图不是有序的,它们不会按顺序存储。请注意这一事实。使用一些替代方案来维护您的订单。可能是LinkedHashMap

你也可以试试下面的方法:

Map.Entry<String, Integer> entry = myMap.firstEntry();
System.out.println("First Value = " + entry);