【问题标题】:how to get the values from hash map and put them in array?如何从哈希映射中获取值并将它们放入数组中?
【发布时间】:2011-11-11 11:13:57
【问题描述】:

我正在尝试从哈希映射中提取值并将它们放入数组中,但我不断收到空指针异常。

还有其他方法吗?

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

【问题讨论】:

    标签: java android arrays hashmap


    【解决方案1】:

    你为什么不用这个?

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

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

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

    如果你仍然想要数组,也许你想做:

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

    【讨论】:

    • 通过视图持有者类,我必须在需要数组的 android 的列表视图中打印它们。如果你能说出将集合更改为数组的方法。那也可以。请帮忙。
    • 你得到了答案,keys.toArray() 和 values.toArray() ;)
    • 对象[] n=names.toArray();错误-->Object[] t= types.toArray();为什么第二行给出编译时错误,尽管我在两个集合中都有字符串类型的值
    • 投它:(String[])types.toArray();
    • 没有办法将hashmap直接转换成字符串数组
    【解决方案2】:

    真正的问题是,你想完成什么?您的两个 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2016-07-06
      • 2011-11-13
      • 1970-01-01
      • 2016-02-26
      • 2021-06-11
      • 1970-01-01
      相关资源
      最近更新 更多