我试图从哈希映射中提取值并将它们放在数组中,但我一直得到一个空指针异常。
还有其他办法吗?
//some code....
String n[]=new String[tcur.getCount()];;
String t[]=new String[tcur.getCount()];;
HashMap<Integer, String> typehashmap=new HashMap<Integer, String>();
HashMap<Integer, String> namehashmap=new HashMap<Integer, String>();
//some code..
String type[]=typehashmap.keySet().toArray(new String[typehashmap.size()]);
String name[]=namehashmap.keySet().toArray(new String[namehashmap.size()]);
for (int i=0;i<=type.length;i++) {
n[i]=namehashmap.get(nameiterator[i]).toString();
System.out.println(n[i]);
t[i]=typehashmap.get(typeiterator[i]).toString();
System.out.println (t[i]);
}
答案 0 :(得分:3)
你为什么不用这个?
Set<Integer> keys = namehashmap.keySet();
Collection<String> values = namehashmap.values();
您可以通过多种方式处理值集合。
for(String value:values) { ... }
如果你还想要数组,也许你想要做:
keys.toArray();
values.toArray();
答案 1 :(得分:0)
真正的问题是,你试图完成什么?您的两个HashMaps是否互连,两个映射中具有相同整数键的条目是否属于一起?如果是这样,我会首先考虑为此创建一个包装类:
private static class TypeName {
private String type;
private String name;
}
使用HashMap
此外,恕我直言,迭代HashMap的最佳方法是使用条目集:
Map<A,B> map = new HashMap<A,B>();
for(Entry<A,B> entry : map.entrySet()) {
A a = entry.getKey();
B b = entry.getValue();
// do things
}