这是旧代码,正在调试中。
我有一个Map
(myMap),其大小为2(肯定)。键是null
和1
。
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/