2012-11-28 179 views
0

我将所述值转换成HashMap这样为什么这个HashMap.get返回null?

String group_name[]=group_names.split(","); 
String group_ids[]=new_groups.split(","); 
Hashtable<Integer,String> hm=new Hashtable<Integer,String>(10); 
for(int i=0;i<group_ids.length;i++){ 
    if (group_ids[i]!=null && !group_ids.equals("")) { 
     hm.put(Integer.parseInt(group_ids[i]), group_name[i]); 
    } 
在下面的代码列表2

ArrayList并且它具有的HashMap键和我正在检索像下面

for(String group_id1:list2) { 
    int gid=Integer.parseInt(group_id1); 
    String group_name=hm.get(Integer.parseInt(group_id1)); 

这里的值hm.get()方法返回null

+0

恕我直言,你应该使用HashMap,除非你必须使用Hastable。 –

回答

6
if (group_ids[i]!=null && !group_ids.equals("")) { 

应该可能是

if (group_ids[i]!=null && !group_ids[i].equals("")) { 
+0

它是一个数组,因此,我就是这样做的,我正在检查每个字符串 – raju

+2

@raju'group_ids.equals(“”)'_always_将为false,因为您正在比较两个不同类的对象 - 'String [ ]'在左边,'String'在右边。 –

+0

您还可以在java字符串中使用isEmpty(),而不是使用空字符串进行比较。像'group_ids [i] .isEmpty()' – seninp