gpt4 book ai didi

java - Map.keySet() 和 Set.addAll 抛出 NullPoniterException

转载 作者:行者123 更新时间:2023-11-30 04:58:21 25 4
gpt4 key购买 nike

这是一个旧代码,正在调试它。我有一个 Map (myMap),大小为 2(当然)。键为 null1

SortedSet mySet = new TreeSet();
mySet.addAll(myMap.keySet());
Iterator mySetIterator = mySet.iterator();
while (mySetIterator.hasNext()) {
Object newObj = mySetIterator.next();
Object mapObj = myMap.get(newObj);
}

while 循环仅迭代一次。我不确定这里出了什么问题。有什么问题吗?

请帮助我。提前致谢。

更新:

现在我在 mySet.addAll(myMap.keySet());

中遇到以下异常
<Oct 18, 2011 12:36:21 PM IST> <Error> <> <BEA-000000> <java.lang.NullPointerException
at edu.emory.mathcs.backport.java.util.TreeMap.compare(TreeMap.java:934)
at edu.emory.mathcs.backport.java.util.TreeMap.put(TreeMap.java:97)
at edu.emory.mathcs.backport.java.util.TreeSet.add(TreeSet.java:149)
at java.util.AbstractCollection.addAll(AbstractCollection.java:318)
at edu.emory.mathcs.backport.java.util.TreeSet.addAll(TreeSet.java:165)

最佳答案

请检查关键对象上的compareTo 方法。

如果键对象的compareTo方法表明两个键对象比较相同,则键集将只有一个值,因为Set不允许重复。您正在使用 Treeset 来存储您的键,因此您的compareTo 方法可能存在问题。

请将完整代码贴在上下文中,以便正确定位问题。

关于java - Map.keySet() 和 Set.addAll 抛出 NullPoniterException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com