日期:2014-05-20  浏览次数:20676 次

问个关于数组的问题:)
随机产生13个不重复的数字,放在数组中

------解决方案--------------------
自己写去,java中有随机数生成的API。

参考API文档实现
------解决方案--------------------
static String[] getRandom()
{
Random r = new Random();
Set s = new HashSet();
for(int i=0;i <Integer.MAX_VALUE;i++)
{
s.add(r.nextInt(Integer.MAX_VALUE)+ " ");
if(s.size() == 13)
break;
}
return (String[])s.toArray(new String[s.size()]);
}
------解决方案--------------------
public static int[] rendomArray(int size){
if (size < 2){
return null;
}
List <Integer> list = new ArrayList <Integer> ();
int sizeTmp;
while ((sizeTmp = list.size()) < size){
double d = Math.random();
int intNum = (int)(d*new Date().getTime());
if (!list.contains(intNum)){
list.add(intNum);
}
}
int[] tmpArr = new int[size];
for (int i = 0; i < list.size(); i ++){
tmpArr[i] = list.get(i);
}
return tmpArr;
}


测试:

int[] array = rendomArray(13);
for(int i:array){
System.out.println(i);
}

一个可能结果:
2147483647
1460068139
70353969
1836205496
1386245424
1261692341
2048052195
226095668
305335076
476877785
557830460
1894287810
2131908965

------解决方案--------------------
随机用random函数啊

------解决方案--------------------
随机random,然后每次写入判断该数是否存在。
不需要用到太复杂的容器
------解决方案--------------------
来晚了。全让楼上的说了。
放到SET里面。正解