思路1:利用List来把数组保存起来,在每取出一个元素后就删除这个元素。
/**
* 使用一个List来保存数组,每次随机取出一个移除一个。
*/
public String[] getRandomArray(int n, String[] strArray){
List<String> list = new ArrayList<String>();
for(int i=0; i<strArray.length; i++){
list.add(strArray[i]);
}
Random random = new Random();
// 当取出的元素个数大于数组的长度时,返回null
if(n>list.size()){
return null;
}
String[] result = new String[n];
for(int i=0; i<n; i++){
// 去一个随机数,随机范围是list的长度
int index = random.nextInt(list.size());
result[i] = list.get(index);
list.remove(index);
}
return result;
}