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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

奔放的龙小胖

中级黑马

  • 黑马币:18

  • 帖子:92

  • 精华:0

先看下代码
  1. package cn.itcast_16;

  2. import java.util.ArrayList;
  3. import java.util.Random;

  4. /*        随机产生5个10-20之间的随机数,且不能重复
  5. *        
  6. *
  7. *
  8. */
  9. public class ArrayListTest3 {
  10.         public static void main(String[] args) {
  11.                 Random r=new Random();
  12.                 ArrayList<Integer> array =new ArrayList<Integer>();
  13.                 int count=0;
  14.                 while(count<5){
  15. //                        先产生随机数,判断是否在集合中,不在,继续添加 并每次自增
  16.                         int number=r.nextInt(11)+10;
  17.                         if(!(array.contains(number))){
  18.                                 array.add(number);
  19.                                 count++;
  20.                         }
  21.                 }
  22.                 for(Integer i:array){
  23.                         System.out.println(i);
  24.                 }
  25.         }
  26. }
复制代码



6 个回复

倒序浏览
  那我的问题是,根据题目,我可以得知是要获得5个随机数,那为什么不能用数组来存储这五个数(毕竟根据题意我可以明确它的长度就是5),而要用集合。当然,我知道数组的长度是固定的,而集合是可以改变长度的...
回复 使用道具 举报
水水水水水水水水水
回复 使用道具 举报
天成大神 发表于 2015-4-16 18:44
水水水水水水水水水

黄毛,我要KO你......
回复 使用道具 举报
没说不可以啊
回复 使用道具 举报
首先这个题目完全可以用数组来做。用数组效率是高,不过缺点就是容量必须是固定的,这个是缺陷。可以考虑用集合如ArrayList:随机读的效率高,LinkedListList:随机存储效率高。集合有很多封装的方法这个是数组无法媲美的,正常情况下需要对数组做较多的操作可以考虑用集合前提是你不是非常要求效率。不过现在的jdk对集合的优化做了很多,一般都可以用集合解决问题。
回复 使用道具 举报
题只是让你用集合,并不是说不能用数组。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马