gpt4 book ai didi

java - 无法使用 java 中的枚举来遍历哈希表

转载 作者:行者123 更新时间:2023-12-01 13:59:03 26 4
gpt4 key购买 nike

这是我尝试打印 key 的代码,但它永远不会被执行,而是只是转到最后一行并抛出空指针异常。

Enumeration<String> keys = states.keys();
int max=0;
String maxClass="";
while(keys.hasMoreElements())
{
String key = keys.nextElement();
System.out.println(key);
if(states.get(key)>=max)
{
max=states.get(key);
maxClass=key;
}
System.out.println(maxClass);
}
System.out.println(maxClass);
Category c = classes.get(maxClass);
c.add(p);

这是分类函数的完整代码。

static void classify(ArrayList<Point> cities,Hashtable<String,Category> classes)
{
for(Point p: cities)
{
ArrayList<Point> nbours = new ArrayList<Point>();
nbours.addAll(getNbours( p,cities));
// System.out.println(p.city);
Hashtable<String,Integer> states = new Hashtable<String,Integer>();
for(Point pt : nbours)
{
//System.out.println(pt.city);

if(states.containsKey(pt.state))
{
int cnt = states.get(pt.state) + 1;
states.remove(pt.state);
states.put(pt.state,cnt);
//states.add(state,);
}
else
{
states.put(pt.state,1);
}
//System.out.println(states.get(pt.state));
}

Enumeration<String> keys = states.keys();
int max=0;
String maxClass="";
System.out.println(keys);
while(keys.hasMoreElements())
{
String key = keys.nextElement();
System.out.println(key);
if(states.get(key)>=max)
{
max=states.get(key);
maxClass=key;
}
System.out.println(maxClass);
}
System.out.println(maxClass);
Category c = classes.get(maxClass);
c.add(p);
System.out.println(p.city+ "Classified");
nbours.clear();

}

最佳答案

如果执行到最后一行并出现 NullPointerException,则“c”为 null。这意味着调用 Category c = classes.get(maxClass); 返回 null。检查ma​​xClass中的键在classes对象中是否可用。

关于java - 无法使用 java 中的枚举来遍历哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19454545/

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