黑马程序员技术交流社区

标题: 小问题 [打印本页]

作者: ztwztw    时间: 2013-12-31 23:05
标题: 小问题
   import java.util.ArrayList;

        class Data {
            int val;
        }

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

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

                    for (Data d : list) {
                          System.out.println(d.val);
                   }
             }
      }
这个程序结果是什么
作者: taoge    时间: 2013-12-31 23:25
  1. package com.tg.test;

  2. import java.util.ArrayList;

  3. class Data
  4. {
  5.         int val;
  6. }

  7. public class Test
  8. {
  9.         public static void main(String args[])
  10.         {
  11.                 ArrayList<Data> list = new ArrayList<Data>();

  12.                 for (int i = 100; i < 103; i++)
  13.                 {
  14.                         Data data = new Data();//new Data()要放在循环里,不然你只new了一个Data,循环只是在给同一个data.val赋值,List里也只存了相同的三个data
  15.                         data.val = i;
  16.                         list.add(data);
  17.                 }

  18.                 for (Data d : list)
  19.                 {
  20.                         System.out.println(d.val);
  21.                 }
  22.         }
  23. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2