A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kaka3208c 中级黑马   /  2016-10-8 21:58  /  872 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.heima.collection;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Test012 {

        public static void main(String[] args) {
                List<ArrayList<Integer>> list = new ArrayList<>();        //创建集合
                ArrayList<Integer> alist = new ArrayList<>();                //创建集合
                Random r = new Random();                                                       
                for(int i = 0; i < 100; i++){       
                        alist.clear();                                                                        //清空集合alist
                        int num = r.nextInt(100) + 1;                                        //num为100-1的随机数
                        alist.add(num);                                                                        //向集合alist中添加元素               
                        System.out.println(alist);                                                //打印集合alist
                        list.add(alist);                                                                //向集合list中添加集合元素alist
               
                }
                System.out.println(list);                            //打印集合list                        
        }

}
请问下运行后list的结果为什么是都是同一个数?

4 个回复

倒序浏览
因为你list里面存的都是同一个对象 ,不管对象 里面存放了多少的integer,打印出来的对象 都是同一个。
回复 使用道具 举报
zhoubinjian 发表于 2016-10-9 15:16
因为你list里面存的都是同一个对象 ,不管对象 里面存放了多少的integer,打印出来的对象 都是同一个。 ...

请问下怎么修改才可以将alist集合中的数据依次存进list集合中?谢谢
回复 使用道具 举报
kaka3208c 发表于 2016-10-9 16:30
请问下怎么修改才可以将alist集合中的数据依次存进list集合中?谢谢

把new对象放到for循环里面来,这样每一次循环都是new一个对象,,
回复 使用道具 举报 1 0
zhoubinjian 发表于 2016-10-9 17:17
把new对象放到for循环里面来,这样每一次循环都是new一个对象,,

太感谢了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马