前几天,做了这个题目。发现实现起来有不同的路子。
1.是随便对int数组内的数进行调换。
2.是建立两个数组,一个是1-100,另一个从其中随机取值。这里可以设置一个end变量记录取值长度。
3.利用List中提供的Colections.shuffle(),但是要先转成List,这里需要注意asList只能取值,但是不能增加或删除.具体可以百度.
1.
public class RandomArr {
public static void main(String[] args) {
int [] arr = new int[100];
for(int i=0 ;i<100 ;i++) {
arr[i] = i+1;
}
for(int i = 0 ;i<100 ;i++) {
int num = new Random().nextInt(100);
int temp = arr[num];
arr[num] = arr[i];
arr[i] = temp;
}
}
}
2.
public class RandomArr {
public static void main(String[] args) {
int [] oldArr = new int[100];
int [] newArr = new int[100];
for(int i = 0 ;i<100 ;i++) {
oldArr[i] = i+1;
}
int end = 100;
for(int i = 0;i<100;i++) {
int num = new Random().nextInt(end);
newArr[i] = oldArr[num];
oldArr[num] = oldArr[end-1];
end--;
System.out.println("num "+num+" new "+newArr[i]);
}
}
}
3.
String [] strArr = {"1","2","3","4","5"};
List<String> asList = Arrays.asList(strArr);
//让List 无序
//asList 其实是一种适配器模式,它内部其实还是数组
Collections.shuffle(asList);
for (String str : strArr) {
System.out.println(str);
}