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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static void main(String[] args) {
                ArrayList<Integer> list = new ArrayList<>();
                TreeSet<Integer> ts = new TreeSet<>();
                Random r = new Random();
               
                for (int i = 0; i < 5; i++){
                       
                        /**------------------1start-----------------------*/
                       
                        list.add(r.nextInt(10) + 1);
                        System.out.print(r.nextInt(10) + 1 +" ");
                       
                        /**------------------1end-----------------------*/
                       
                        /**------------------2start-----------------------*/
                        int a = r.nextInt(10) + 1;
                        list.add(a);
                        System.out.print(a + " ");
                       
                        /**------------------2end-----------------------*/
                }
               
                for (Integer i : list) {
                        ts.add(i);
                }
                list.clear();
                list.addAll(ts);
                System.out.println(list);

在1中,r.nextInt(10) + 1的值赋给list之后,和后面循环完了打印出来的list值不一样
在2中,r.nextInt(10) + 1先赋值给a,然后把a添加到list中,这样a的只就是后面打印出来的list的值。
这问题出在哪呢?

3 个回复

倒序浏览
你第一个存的是随机数啊,当然会不一样
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
月下樱 发表于 2016-12-1 13:55
你第一个存的是随机数啊,当然会不一样

第一次竟然没看出来,我还是太年轻了。。。。。唉,去修炼去。
回复 使用道具 举报
lc0356 发表于 2016-12-1 15:51
第一次竟然没看出来,我还是太年轻了。。。。。唉,去修炼去。

加油咯
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马