至于现在我在做什么:
Map<Item, Boolean> processedItem = processedItemMap.get(i);
Map.Entry<Item, Boolean> entrySet = getNextPosition(processedItem);
Item key = entrySet.getKey();
Boolean value = entrySet.getValue();
public static Map.Entry<Item, Boolean> getNextPosition(Map<Item, Boolean> processedItem) {
return processedItem.entrySet().iterator().next();
}
有没有更简洁的方法用 java8 来做到这一点?
最佳答案
我发现你的方法有两个问题:
- 如果 map 为空会抛出异常 例如,
HashMap
没有顺序 - 所以您的方法实际上更像是getAny()
而不是getNext()
.
对于流,您可以使用:
//if order is important, e.g. with a TreeMap/LinkedHashMap
map.entrySet().stream().findFirst();
//if order is not important or with unordered maps (HashMap...)
map.entrySet().stream().findAny();
返回一个Optional
。
关于java - 如何使用 JAVA 8 从 map 中获取第一个键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43627091/