我只是不明白为什么会打印出111111111111,希望大家给个解释,谢谢了!
public static void main(String[] args) {

List lst = new ArrayList();
for (int i = 0; i < 5; i++) {
Map map = new HashMap();
map.put("test_"+i, i);
lst.add(map);
}

for (int i = 0; i < lst.size(); i++) {
Map map = (Map)lst.get(i);
map.put("test_"+i, "111111111111");
}

for (int i = 0; i < lst.size(); i++) {
Map map =  (Map)lst.get(i);
System.out.println(map.get("test_"+i));
}

}

解决方案 »

  1.   

    如果不打印出111111111111,那会打印出什么呢?map.put("test_"+i, "111111111111");这名话把前面相同key的value都替换了。
      

  2.   

    我以为会输出 0 1 2 3 4 5 
    for (int i = 0; i < lst.size(); i++) {
    Map map = (Map)lst.get(i);
    map.put("test_"+i, "111111111111");
    }
    原来 通过这一步就能更新list啊! 我以前一直以为这样不会更新list内部的元素。  汗
      

  3.   

    for (int i = 0; i < lst.size(); i++) {
    Map map = (Map)lst.get(i);
    map.put("test_"+i, "111111111111");
    }你上面这句话已经把map里面的值给换掉了啊,当然都是111111111了啊 
      

  4.   

    package day28_myself;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;public class T {
    // 我只是不明白为什么会打印出111111111111,希望大家给个解释,谢谢了!
    public static void main(String[] args) {
    List lst = new ArrayList();
    for (int i = 0; i < 5; i++) {
    Map map = new HashMap();
    map.put("test_" + i, i);
    lst.add(map);
    // System.out.println(("test_" + i)+"--->"+map.get("test_" + i));
    // test_0--->0
    // test_1--->1
    // test_2--->2
    // test_3--->3
    // test_4--->4
    } for (int i = 0; i < lst.size(); i++) {
    Map map = (Map) lst.get(i);
    map.put("test_" + i, "111111111111");
    // System.out.println(("test_" + i)+"--->"+map.get("test_" + i));
    // test_0--->111111111111
    // test_1--->111111111111
    // test_2--->111111111111
    // test_3--->111111111111
    // test_4--->111111111111
    } for (int i = 0; i < lst.size(); i++) {
    Map map = (Map) lst.get(i);//取出的每个元素都是一个map的映射关系对
    System.out.println(map.get("test_" + i));
    // System.out.println(("test_" + i)+"--->"+map.get("test_" + i));
    // test_0--->111111111111
    // test_1--->111111111111
    // test_2--->111111111111
    // test_3--->111111111111
    // test_4--->111111111111
    }
    }
    }通过我的注释,希望你能看明白。其实主要是你的
    for (int i = 0; i < lst.size(); i++) {
    Map map = (Map) lst.get(i);
    map.put("test_" + i, "111111111111");
    }
    将map里面的值给替换了,然后到后面一直是
    // test_0--->111111111111
    // test_1--->111111111111
    // test_2--->111111111111
    // test_3--->111111111111
    // test_4--->111111111111
    这些值。