关于javaMap的put问题

代码如下:
List list = new ArrayList();
Map map = new HashMap();
for (int i = 0; i < 10; i++) {

for (int j = 0; j < 20; j++) {
list.add(j);
}
map.put(i, list);
list.clear();
}
System.out.println(map);

为什么结果是{0=[], 1=[], 2=[], 3=[], 4=[], 5=[], 6=[], 7=[], 8=[], 9=[]} 我clear list之前 不是把list的内容set进去了吗? 怎样才能是{0=[1,2,3,4.....20], 1=[1,2,3,4.....20], 2.....}

第1个回答  2012-11-23
Set set = new HashSet();
Map map = new HashMap();
for (int i = 0; i < 10; i++) {

for (int j = 0; j <=20; j++) {
set.add(j);
}
map.put(i, set);
}
System.out.println(map);
用 Set吧
第2个回答  2012-11-23
list.add() 换成 list.set(j, j)
list.clear就不用了

java map .put 方法
Java的Map接口中的`.put`方法主要用于向Map中添加键值对。其工作原理是,首先检查Map内部的数组(table)是否已满,如果满则进行resize操作。接着,通过哈希算法确定键值对在数组中的位置。如果位置是空的,会新建一个节点并存储在该位置;若位置已存在元素,可能存在两种情况:1. 哈希冲突:如果发现键已...

关于javaMap的put问题
map.put,里面保留了的对象,也只不过是一个对象的引用而已。在你的代码中,list所new的对象的引用,是不止一处的,map中所保存的所有的对象,还有外面的list,都是引用得同一个对象。在你的代码的循环完成后,加一句:list.add(0),你会发现,map里面所有的元素,都已经多加了一个0了。JAVA中,...

java map .put 方法
Map.Put方法原理:Map将对象table赋值给tab,并以tab是否为空作为是否第一次调用此方法的判断,是则resize()并给tab,n赋值;获取tab的第i个元素:根据 (n - 1) & hash 算法 ,计算出i找到,如果为空,调用newNode() ,赋值给tab第i个;如果不为空,可能存在2种情况:hash值重复了,也就是p...

关于java的Map中put()的问题
你定义的类变量没有初始化,当然空指针 定义的时候应该改成private HashMap persontypemap= new HashMap();

put是什么意思java?
Java中的Map接口中,put()方法被用于向Map中添加键值对,当给定键尚不存在于映射中时,put()方法将键值对添加到Map中。如果映射中已经存在给定键的另一个映射,则新值将替换旧值。Java的put()方法如何使用?在Java中,我们可以通过以下代码示例来使用put()方法:Map myMap = new HashMap();myMap...

java中map put方法的问题
\/\/这里是把list1指向 一个 ArrayList对象 \/\/map.put("1", list1);\/\/把指向的ArrayList对象存入 } System.out.println(map.get("1"));\/\/再取出打印 } 放开这一句 map.put("1", list1); 打印:[ ] 是因为ArrayList对象是没元素的,toString打印就是[]注释掉这一句 map.pu...

JAVA 中map输出问题
HashMap前面的是key,后面是对应的value,你在map中put了两次key为y所对应的value的值,后面的一次为p,所以map.get("x")获得y, 进而map.get("y")就得到p了啊

JAVA 中 Map的按顺序 PUT如何实现 ?
map.put(s,s); \/\/测试随机put10个数字 } Collection col = map.keySet(); \/\/从map里取键集合,这里应该是排序的 Iterator it = col.iterator(); \/\/遍历 while(it.hasNext()) { int key =Integer.parseInt(it.next().toString()); \/\/强制转换为int System.out.println(key); \/\/打印键...

java map.put(key,value) value中有一个空值,无法插入到map中,怎么...
1、Java中的Map是允许value为空的,2、如果你插入不进去可以试试""空字符串3、你也可以去看看讯云资源网是一个关于资源下载、快速问答和新闻资讯的网站

java hashmap中put参数问题
你的HashMap<String,S> s 的主键是一个String类型,而s.put(s,e) 主键就是s本身,是一个HashMap,这里不对。改成s.put("str",e); 就对了

相似回答