如果我使用hashmap,我有一个代码可以工作,但是如果我使用treemap,我没有,有人能告诉我为什么吗?
这是我的密码:
package ka.fil;
import java.util.HashMap;
import java.util.Map;
public class ModelInMemory implements Model {
private Map<String,BeanRecord> map = new HashMap<>();
@Override
public void putRecord(BeanRecord beanRecord) {
map.put(beanRecord.getEmail(), beanRecord);
}
@Override
public BeanRecord getRecord(String email) {
BeanRecord r = map.get(email);
return r;
}
@Override
public Iterable<BeanRecord> allRecord() {
return map.values();
}
public ModelInMemory() {
}
}
我不工作的意思是,当我在一个主方法中使用它时,我得到:
Exception in thread "main" java.lang.NullPointerException at
java.util.TreeMap.compare(Unknown Source) at java.util.TreeMap.put(Unknown Source)
at ka.fil.ModelInMemory.putRecord(ModelInMemory.java:11)
at ka.fil.AppBatch.main(AppBatch.java:10)
2条答案
按热度按时间xkftehaa1#
一个区别是treemaps不支持空键,但是hashmaps支持。
使用treemap,如果
beanRecord.getEmail()
返回null。ux6nzvsh2#
如果你只是更换线路-
与-
那就没用了,因为你有
不包括树状图。简单的解决方法就是