2011-11-11 84 views
-1

我想從哈希映射中拉出值並將它們放入數組中,但我不斷收到空指針異常。如何從哈希映射中獲取值並將它們放入數組中?

有沒有其他方法可以做到這一點?

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

回答

2

你爲什麼不用這個?

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

您可以使用多種方式處理值集合。

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

如果你仍然想陣列,也許你想要做的事:

keys.toArray(); 
values.toArray(); 
+0

通過視圖持有人類我必須在Android的列表視圖中打印它們需要一個數組。如果你可以告訴方法來改變集合到數組中。這也會做得很好。幫助。 –

+0

不收集toArray()方法爲你工作? –

+0

你有回答,keys.toArray()和values.toArray();) –

0

真正的問題是,你試圖完成什麼?你的兩個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 
} 
相關問題