繁体   English   中英

如何从哈希映射中获取值并将其放入数组?

[英]how to get the values from hash map and put them in array?

我正在尝试从哈希映射中提取值并将其放入数组中,但是我一直在获取空指针异常。

还有其他方法吗?

//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]);
}

你为什么不使用这个?

 Set<Integer> keys = namehashmap.keySet();
 Collection<String> values = namehashmap.values();

您可以通过多种方式使用值收集。

 for(String value:values) { ... }

如果您仍然想要数组,也许您想这样做:

 keys.toArray();
 values.toArray();

真正的问题是,您尝试完成什么? 您的两个HashMap是否相互连接,比如说两个映射中具有相同整数键的条目属于一起? 如果是这样,我首先考虑为此创建一个包装类,例如:

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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM