为什么这个HashMap.get返回null?

0 java

我插入值到HashMap这样的

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]);
    }
Run Code Online (Sandbox Code Playgroud)

在下面的代码list2是ArrayList和它的键,HashMap我正在检索如下的值

for(String group_id1:list2) {
    int gid=Integer.parseInt(group_id1); 
    String group_name=hm.get(Integer.parseInt(group_id1));
Run Code Online (Sandbox Code Playgroud)

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

Ian*_*rts 6

if (group_ids[i]!=null && !group_ids.equals("")) {
Run Code Online (Sandbox Code Playgroud)

应该是

if (group_ids[i]!=null && !group_ids[i].equals("")) {
Run Code Online (Sandbox Code Playgroud)

  • @raju`group_ids.equals("")`将_always_为假,因为你要比较两个不同类的对象 - 左边的`String []`和右边的`String`. (2认同)