[英]Map key value pair in java not getting properly
我正在使用Map插入一些对象,同时将对象的工作正常,但同时迭代相同的地图,以正确获取对象的大小,但在所有迭代中仅获取最后一个对象,以供参考,我正在粘贴所有代码如下
package map;
Map<Integer,ListLabcar> ma = new LinkedHashMap<Integer,ListLabcar>();
ListLabcar lc = new ListLabcar();
for(int l =0;l<5;l++){
int j = 0;
for(int i = 0;i<=3;i++){
if(i==l){
System.out.println("ok");
j+=1;
lc.setIn(j);
lc.setS("a-"+l);break;
}
else{
lc.setIn(l);
lc.setS("zero-"+l);
//break;
}
}
ma.put(l, lc);
System.out.println(ma.get(l).getIn());
System.out.println(ma.get(l).getS());
}System.out.println(ma.size());
Set<Integer> ke = ma.keySet();
for(Integer k:ke){
System.out.println(k);
System.out.println("int--->"+ma.get(k).getIn());
System.out.println("sttr--->"+ma.get(k).getS());
}
}
}
该行必须在第一个for循环中。
ListLabcar lc = new ListLabcar();
您正在做的是重写值,而不是在地图中添加新对象。
编辑:
package map;
Map<Integer,ListLabcar> ma = new LinkedHashMap<Integer,ListLabcar>();
for(int l =0;l<5;l++){
ListLabcar lc = new ListLabcar();
int j = 0;
for(int i = 0;i<=3;i++){
if(i==l){
System.out.println("ok");
j+=1;
lc.setIn(j);
lc.setS("a-"+l);break;
}
else{
lc.setIn(l);
lc.setS("zero-"+l);
//break;
}
}
ma.put(l, lc);
System.out.println(ma.get(l).getIn());
System.out.println(ma.get(l).getS());
}
System.out.println(ma.size());
Set<Integer> ke = ma.keySet();
for(Integer k:ke){
System.out.println(k);
System.out.println("int--->"+ma.get(k).getIn());
System.out.println("sttr--->"+ma.get(k).getS());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.