哈哈 我是从老师那得知这个JAVA论坛的!
初来乍到,还请老鸟们多多照顾。
对了,有个问题昨天困扰我们很久。就是编写一个随机出N个数的程序,怎样使他出的数字不会重复?求教

解决方案 »

  1.   

    Random ran = new Random();
    int[] num = new int[3];
    int count = 0;
    boolean temp = false;
    while(true)
    {
    temp = false;
    for(int i = 0; i < count; i++)
    {
    if(ran.nextInt() == num[count])
    {
    temp = true;
    }
    }
    if(count == 3)
    {
    break;
    }
    if(temp)
    {
    continue;
    }
    else
    {
    count++;
    }
    }
      

  2.   

    如果数据比较多的话,,用Map比较快
      

  3.   

    Set<Intege> set = new HashSet<Integer>();
    Random ran = new Random(); 
    while(set.size() < 3){
      set.add(ran.nextInt());
    }
    这里利用了HashSet内部值的不可重复性。
      

  4.   


    为什么创建Random对象报错?
      

  5.   

    package com.windex.util;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;public class RandomTest {
    public static void main(String args[]){
    // 创建一个随机数生成器
    Random ran = new Random();
    // 创建一个List集合
    List<Integer> list = new ArrayList<Integer>();
    // 定义一个int型变量
    int num;
    // 定义一个逻辑变量
    boolean temp = true;
    // 循环产生100以内的三个不同的随机数
    while(temp){
    num = ran.nextInt(100);
    // 判断list中是否已有此随机数
    if(list.contains(num)){
    temp = true;
    continue;
    }
    list.add(num);
    if(list.size() == 3){
    break;
    }
    }

    // 打印生成的随机数
    for(int i: list){
    System.out.println(i);
    }

    }
    }楼上用的set集合。我这个是用list集合的contains方法来判断是否用重复的数字,如有重复,重新生成。
      

  6.   


    public class TestOne {

        public static void main(String[] args)   
        {   
            int[] arr = new int[10];   
      
            for (int i = 0; i < 10; i++)   
            {   
                arr[i] = (int) (Math.random() * 40) + 1;   
                for (int j = 0; j < i; j++)   
                {   
                    if (arr[j] == arr[i])   
                    {   
                        i--;   
                        break;   
                    }   
                }   
            }   
            for (int i = 0; i < 10; i++)   
                System.out.print(arr[i] + " ");   
        }   
    }   
      

  7.   

    你的老师为什么不介绍给你javaeye或者infoQ呢..