Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';t在java中向列表中插入数据_Java_List_Dictionary_Arraylist_Hashmap - Fatal编程技术网

我能';t在java中向列表中插入数据

我能';t在java中向列表中插入数据,java,list,dictionary,arraylist,hashmap,Java,List,Dictionary,Arraylist,Hashmap,这是我的代码。我正在将一个映射插入列表。但当我直接将一个映射添加到表中时,它显示错误 import java.util.*; class mapIn{ public static void main(String... a){ List<Map<Integer, String>> mapList = new ArrayList<Map<Integer,String>>(); mapList.add(new HashMap<Integer

这是我的代码。我正在将一个映射插入列表。但当我直接将一个映射添加到表中时,它显示错误

import java.util.*;
class mapIn{
   public static void main(String... a){
List<Map<Integer, String>> mapList = new ArrayList<Map<Integer,String>>();
mapList.add(new HashMap<Integer,String>().put(1,"Ram"));
mapList.add(new HashMap<Integer,String>().put(2,"Shyam"));
mapList.add(new HashMap<Integer,String>().put(3,"Shyam"));
for(Map m:mapList){
        // for(Map.Entry e:m.entrySet()){
        //  System.out.println(e.getKey()+" "+e.getValue());
        // }
       Set set=m.entrySet();//Converting to Set so that we can traverse  
    Iterator itr=set.iterator();  
            while(itr.hasNext()){  
        //Converting to Map.Entry so that we can get key and value separately  
        Map.Entry entry=(Map.Entry)itr.next();  
        System.out.println(entry.getKey()+" "+entry.getValue());  
    } 
    }
}
}
import java.util.*;
类mapIn{
公共静态void main(字符串…a){
List mapList=new ArrayList();
add(newhashmap().put(1,“Ram”);
add(newhashmap().put(2,“Shyam”);
add(newhashmap().put(3,“Shyam”);
用于(地图m:mapList){
//对于(Map.Entry e:m.entrySet()){
//System.out.println(e.getKey()+“”+e.getValue());
// }
Set Set=m.entrySet();//转换为Set以便我们可以遍历
迭代器itr=set.Iterator();
而(itr.hasNext()){
//转换为Map.Entry,这样我们就可以分别获得键和值
Map.Entry=(Map.Entry)itr.next();
System.out.println(entry.getKey()+“”+entry.getValue());
} 
}
}
}

请分别执行初始化哈希映射和将(键、值)放入映射的步骤。我重写了代码的第一部分:

List<Map<Integer, String>> mapList = new ArrayList<>();
for(int i = 0; i < 3; i++) mapList.add(new HashMap<Integer, String>());
mapList.get(0).put(1, "Ram");
mapList.get(1).put(2, "Shyam");
mapList.get(2).put(3, "Shyam");
List-mapList=new-ArrayList();
对于(inti=0;i<3;i++)mapList.add(newhashmap());
mapList.get(0).put(1,“Ram”);
地图列表.get(1).put(2,“Shyam”);
地图列表.get(2).put(3,“Shyam”);
我不知道你的代码是用来做什么的,但是使用ArrayList来存储3个不同的hashMap并不是很有效。如果您能提供更多信息,我们可以进一步改进代码。
希望有帮助D

aibreania的答案是更好的方法,但是如果你想把它保持在一行,你可以使用:

mapList.add(new HashMap<Integer,String>(){{ put(1,"Ram"); }});
mapList.add(new HashMap<Integer,String>(){{ put(2,"Shyam"); }});
mapList.add(new HashMap<Integer,String>(){{ put(3,"Shyam"); }});
添加(新的HashMap(){{put(1,“Ram”);}); add(newhashmap(){{put(2,“Shyam”);}); add(newhashmap(){{put(3,“Shyam”);});
HashMap
中的
put
方法返回
String
,而不是列表中底层对象的类型(
Map
)。这就是为什么你会犯这样的错误

您也可以通过以下方式执行此操作:

mapList.add(Collections.singletonMap(1, "Ram"));
mapList.add(Collections.singletonMap(2, "Shyam"));
mapList.add(Collections.singletonMap(3, "Shyam"));

怎么了?你能把你的代码格式化吗?请阅读我们的页面,了解如何改进此问题的提示返回:与键关联的上一个值,如果键没有映射,则返回null。(如果实现支持空值,则null返回也可以指示先前与键关联的映射为null。)这是put返回值描述。这根本不应该编译。这与OPs问题不同。它只是一个缩影。实际上,我是大学生,我用它来实现一个加权图,我可以将权重和节点插入地图并存储在列表中。我看不出有什么理由不这样做,很明显,它需要其他代码,因为你每天都能学到新的东西。我从未遇到过将元素放入HashMapIt的compact中的这种语法,但确实存在问题:如前所述