java随机生成数组
⑴ java随机生成字符数组
生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;//length用户要求产生字符串的长度 public static String getRandomString(int length){ String str=""; Random random=new Random(); StringBuffer sb=new StringBuffer(); for(int i=0;i<length;i++){ int number=random.nextInt(62); sb.append(str.charAt(number)); } return sb.toString(); }
⑵ java 产生一个随机整数数组
随即数组很常用,但是Java方面的相关资料也挺多的,大多都是用Vector向量数组做的。在此我分享一下我的做法,很简单的一个方法。如下代码:
产生size大小的随机数组。
private int[] createRandomArray(int size){
int[] list = new int[size];
int count=0; //计数
int num = 0; //随机数
int i;
//初始化数组
for(i=0;i
list[i] = -1;
}
//填充数组元素
do{
num = (int)(Math.random()*list.length);
//判断元素是否存在数组中
for(i=0;i
if(list[i] == num){
break;
}
}
//不存在则装入
if(i>=list.length){
list[count] = num;
GameLog.log(Tag, "count = "+count+"--num ="+num);
count ++;
}
}while(count < size);
//输出数组元素
for(i=0;i
GameLog.log(Tag, "random list[ "+i+" ] = "+list[i]);
}
return list;
}
我们可以用一个类封装起来,以备以后使用。
⑶ java 产生随机不重复的数组
最简单(最快想到)的实现的实现方法:
首先创建一个数组,并为每个元素赋值-1;因为楼主要求从[0,n-1]中取数呀
其次for循环,随即取值依次填入数组中。
最后,在上面的for循环中加入判断语句,看随即产生的数 是否与之前的数相同,如不相同,则添加,如相同,则将循环数减一,再次循环。就OK了
代码如下:
public int[] RandNum(int m, int n) {
int[] arr=new int[m];
for(int i=0;i<m;i++){
arr[i]=-1;
}
Random random=new Random();
B:for(int i=0;i<m;i++){
int num=random.nextInt(n);
for(int j=0;j<i;j++){
if(arr[j]==num){
i--;
continue B;
}
}
arr[i]=num;
}
return arr;
}
当然还有其他思路,楼主可以自己开拓!