在代码中获取java.util.NoSuchElementException。为什么?
我有以下代码:在代码中获取java.util.NoSuchElementException。为什么?,java,collections,Java,Collections,我有以下代码: final LinkedHashMap<String, Integer> linkedHashMapCounterMap = new LinkedHashMap<>(); linkedHashMapCounterMap.put("abc", 2); linkedHashMapCounterMap.put("xyz", 5); final String maxColln = Collections.max( linkedHash
final LinkedHashMap<String, Integer> linkedHashMapCounterMap = new LinkedHashMap<>();
linkedHashMapCounterMap.put("abc", 2);
linkedHashMapCounterMap.put("xyz", 5);
final String maxColln = Collections.max(
linkedHashMapCounterMap.entrySet(),
(entry1, entry2) -> entry1.getValue().intValue() -
entry2.getValue().intValue())
.getKey();
运行代码后,我得到以下异常:
java.util.NoSuchElementException:null位于
java.util.LinkedHashMap$LinkedHashInterator.nextNodeLinkedHashMap.java:721
约[?:1.8.0_202]at
java.util.LinkedHashMap$LinkedEntryIterator.nextLinkedHashMap.java:752
约[?:1.8.0_202]at
java.util.LinkedHashMap$LinkedEntryIterator.nextLinkedHashMap.java:750
位于java.util.Collections.maxCollections.java:708的~[?:1.8.0202]
~[?:1.8.0_202]
比较器lambda中有一个edge case错误,但这不应该导致NPE。使用Integer.compareToInteger:请参阅 我认为NPE一定是由于线程错误造成的;e、 g.此代码运行时,另一个线程正在修改映射。我看不出这段代码如何在下一步以任何其他方式NPE
无论哪种方式,我们都需要一个更进一步的解决方案。它在Java-8和Java-13中适用于我,您能告诉我们您的产品是什么吗?另外,您使用的是哪个版本的Java?