当前位置: 代码迷 >> Java相关 >> 请教java习题!!
  详细解决方案

请教java习题!!

热度:366   发布时间:2008-11-19 17:21:39.0
请教java习题!!
一个int数组
数组长100
随机向这个数组输入1-100
并且保证数组里面的数不会重复!

[[it] 本帖最后由 elan1986 于 2008-11-19 17:27 编辑 [/it]]
搜索更多相关的解决方案: java  习题  

----------------解决方案--------------------------------------------------------
输入1到100不能重复,那不就是顺序输入1到100就不会重复了!
----------------解决方案--------------------------------------------------------
请看明白是随机!!
随机!!!
数组里面的数不能重复!
----------------解决方案--------------------------------------------------------
将1-100随机插入数组,插入的位置随机生成,插入时判断该位置是否为空
这样行吗?
----------------解决方案--------------------------------------------------------
程序代码:
import java.util.ArrayList;
import java.util.Random;

/*一个int数组
数组长100
随机向这个数组输入1-100
并且保证数组里面的数不会重复!*/
public class ArrTest{
    private int[] num = new int[100];
    private ArrayList<Integer> list = new ArrayList<Integer>(100);
    private Random rand = new Random();
    
    {
        for(int i=0;i<100;){
            list.add(++i);
        }
    }
    
    //将1~100随机的放到num数组中
    public void fillArray(){
        for(int i=0;i<num.length;i++){
            num[i] = list.remove(rand.nextInt(list.size()));
        }
    }
    //打印数组
    public void printArray(){
        for(int i:num){
            System.out.print(i + " ");
        }
        System.out.println();
    }
    
    public static void main(String[] args) {
        ArrTest test = new ArrTest();
        test.fillArray();
        test.printArray();
    }
}


[[it] 本帖最后由 freish 于 2008-11-19 19:54 编辑 [/it]]
----------------解决方案--------------------------------------------------------
5楼写的很好啊
值得我多多学习
----------------解决方案--------------------------------------------------------
5楼的相当不错,支持了!要好好学习啊!
----------------解决方案--------------------------------------------------------
参考一下
public class test {
    public static void main(String[] args){
        //
        Random rand = new Random();
        Set s = new HashSet();
        for(int i = 0;i<100;i++){
            while(!s.add(rand.nextInt(100)+1));
        }
        System.out.println(s.toString());
        System.out.print(s.size());

        
    }
}

跑一下试试,SET容器有个特性就是不包含重复的对象
我的邮箱:lxy2520@126.com
----------------解决方案--------------------------------------------------------
六楼更强哦
强强强
----------------解决方案--------------------------------------------------------
六楼有个问题就是越到后来while循环的次数越多,耗时越多
原理还是插入时判断是否已经存在,只不过由Collection去做了

[[it] 本帖最后由 freish 于 2008-11-21 16:50 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案