(java)为什么输出结果都是一样的数值

2024-11-23 04:54:20
推荐回答(4个)
回答(1):

原因是你这个里面只有一个Data对象,你每次给他在for循环里面赋值的时候,都在改变Data对象的属性val的值,所以,最后输出了102。你要是想输出不同的值,那么list里面add的应该是不同的Data对象。即把你的Data data = new Data()写在第一个for循环里面,这样每次list里面add的都是不同的Data对象。就和最快回答那哥们写的是一样的

回答(2):

因为data是一个对象 向list中存入的是data在内存中的路径 你在这里修改的都是同一个对象.也就是说你的list集合里面存的路径全部是一样地,修改的值也是同一个data对象.所以当你循环的时候 输出的也就是相同的值了!
要想输出的值不同 可以在循环里面获取data对象

回答(3):

public class Test {
          public static void main(String args[]) {
                   ArrayList list = new ArrayList();

           for (int i = 100; i < 103; i++) {
                   Data data = new Data();
                   data.val = i;
                   list.add(data);
           }

            for (Data d : list) {
                  System.out.println(d.val);
           }
     }
}

回答(4):

在这里面你的list里面add的是data...所以一直都是一个值