黑马程序员技术交流社区

标题: 这个题怎么做?java [打印本页]

作者: 14900    时间: 2014-2-24 16:14
标题: 这个题怎么做?java
产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
作者: 长石    时间: 2014-2-24 16:21
可以利用set集合的不重复特点   先存入集合中
作者: 丶小天    时间: 2014-2-24 16:24
用一个ArrayList存储1到100:
  1. public class Rand {
  2.         public static void main(String[] args) {
  3.                 int[] fill = new int[100];
  4.                 List<Integer> list = new ArrayList<Integer>();
  5.                 for(int i=1; i<=100; i++) {
  6.                         list.add(i);
  7.                 }
  8.   
  9.                 Random random = new Random();
  10.                         for(int i=0; i<fill.length; i++) {
  11.                                 fill[i] = list.remove(random.nextInt(list.size()));
  12.                         }
  13.   
  14.                 for(int i=0; i<fill.length; i++) {
  15.                         System.out.print(fill[i] + " ");
  16.                 }
  17.         }
  18. }
复制代码


作者: 张东健    时间: 2014-2-24 16:24
1.创建数组
2 产生随机数
3产生的数先判断数组中是否包含(遍历数组元素看是否有数字和该随机数相等),不包含就放

作者: joure    时间: 2014-2-24 16:30
面试题?给你说一下思路吧,代码就不贴了,可以使用Random随机数,random接口或Math类的random方法都可以实现这种效果,然后如楼上所说存入Set集合,还要注意处理基本数据拆装箱的问题
作者: flying    时间: 2014-2-24 16:38
  1. public class   Test
  2. {
  3.         public static void main(String[] args) {
  4.                 int [] arr=fun();
  5.         }

  6.         private static int[] fun() {
  7.                 Set<Integer> set =
  8.                                 new HashSet<Integer>();
  9.                 while(set.size()<100){
  10.                         set.add((new Random().nextInt(100))+1);
  11.                 }
  12.                 int []arr=new int[100];
  13.                 int i=0;
  14.                 for(int x:set)
  15.                         arr[i++]=x;
  16.                 return arr;
  17.         }
  18. }
复制代码





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