这是旧代码,正在调试中。
我有一个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/

10-10 16:31