请教java习题!!
一个int数组数组长100
随机向这个数组输入1-100
并且保证数组里面的数不会重复!
[[it] 本帖最后由 elan1986 于 2008-11-19 17:27 编辑 [/it]]
----------------解决方案--------------------------------------------------------
输入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();
}
}
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]]
----------------解决方案--------------------------------------------------------