繁体   English   中英

Java中的映射键值对无法正确获取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM