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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fmi110 高级黑马   /  2015-10-11 20:59  /  1730 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. /*
  2. * 需求:获取1-20之间的不重复的随机数10个
  3. * */

  4. package test;

  5. import java.util.ArrayList;
  6. import java.util.List;

  7. public class Test3 {

  8.         public static void main(String[] args) {
  9.                 // TODO Auto-generated method stub
  10.                 //创建存储数字的集合
  11.                 List<Integer> list = new ArrayList<Integer>();
  12.                 //生成随机1-20的随机数
  13.                 for(int i = 0;i<20;){
  14.                         //隨機數
  15.                         int num = (int)(Math.random()*20+1);
  16.                         if(!list.contains(num)){
  17.                                 list.add(num);
  18.                                 i++;
  19.                         }
  20.                 }
  21.                 System.out.println(list);
  22.         }
  23. }
复制代码


22 个回复

倒序浏览
我想说 ,我还没学到这里,但是我看你代码看完了- -说说什么知识点? 是集合吗? int num = (int)(Math.random()*20+1);                         if(!list.contains(num)){                                 list.add(num); 求注释
回复 使用道具 举报
用Random类更方便些,
for(int x=0,x<10,x++)
{
    Random r=new Random( );
     int x=r.nextInt(21);
    System.out.println(x);
}
回复 使用道具 举报
我以前都是 写几个去买彩票的
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-11 23:28
我想说 ,我还没学到这里,但是我看你代码看完了- -说说什么知识点? 是集合吗? int num = (int)(Math.ran ...

集合的内容,他简写了for循环,int num = (int)(Math.random()*20+1);
                    if(!list.contains(num)){
                            list.add(num);
                            i++;
                    }
嗲用了Math类的random方法生成了0.1-0的伪随机数,*20+1就相当于生成了1-20之间的伪随机数.add()是集合中通用的添加方法,将这些随机数添加到集合中,这道题如果用迭代器(集合特有的方式)做会出现漏值的情况.你可以自学一下
回复 使用道具 举报
郑亚卓 发表于 2015-10-12 00:09
集合的内容,他简写了for循环,int num = (int)(Math.random()*20+1);
                    if(!list.conta ...

好的。这是视频的第几天内容啊?
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-12 00:17
好的。这是视频的第几天内容啊?

15天到18天的
回复 使用道具 举报

。。。。还好。。我才看完第五天,能看懂点15-18的不错了 哈哈。  还不睡?
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-12 00:25
。。。。还好。。我才看完第五天,能看懂点15-18的不错了 哈哈。  还不睡? ...

你没报班?
回复 使用道具 举报

刚报,过半月去报道基础班
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-12 00:31
刚报,过半月去报道基础班

你上了基础班你就知道.都是夜猫子,熬出来的!
回复 使用道具 举报
郑亚卓 发表于 2015-10-12 00:32
你上了基础班你就知道.都是夜猫子,熬出来的!

你现在到哪一步了?看来我这很适合这个节奏啊
回复 使用道具 举报
迷茫不堪的年纪 发表于 2015-10-12 00:36
你现在到哪一步了?看来我这很适合这个节奏啊

基础班刚结束,考上就业班了
回复 使用道具 举报
郑亚卓 发表于 2015-10-12 00:42
基础班刚结束,考上就业班了

you can system.out.print("qq:275726281")
回复 使用道具 举报
学习中。。。。。。。。
回复 使用道具 举报
请问用int不行吗?为什么要用Integer,有什么区别呢
回复 使用道具 举报
yuyucoo 发表于 2015-10-12 13:41
请问用int不行吗?为什么要用Integer,有什么区别呢

这个是泛型,你应该是还没学到这里,int是基本数据类型,泛型不支持基本数据类型,Integer是int的封装类,所以只能用这个
回复 使用道具 举报
fmi110 高级黑马 2015-10-12 16:20:54
18#
yuyucoo 发表于 2015-10-12 13:41
请问用int不行吗?为什么要用Integer,有什么区别呢

集合只能存储引用数据类型,所以声明的时候要用Integer
add(5);可以通过 那时因为JDK1.5之后具有自动拆装箱的新特性,在编译后实际代码为add(new Integer(5));
回复 使用道具 举报
leaves 发表于 2015-10-12 00:05
用Random类更方便些,
for(int x=0,x

人家要1~20,你给人家0~20合适吗?
回复 使用道具 举报
加油↖(^ω^)↗
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马