gpt4 book ai didi

java - java中的映射键值对未正确获取

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:08 24 4
gpt4 key购买 nike

我正在使用 Map 插入一些对象,同时将对象放置在工作正常的情况下, 但是在迭代相同的 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();

您所做的是重写值,而不是在 map 中添加新对象。

编辑:

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());
}
}

关于java - java中的映射键值对未正确获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com