java用另一个数组替换原数组里面个别几个随机位置的数据,现在有一个容量100的数组,里面内容是~线,想随机替换掉里面5个数据改成+号,这个程序应该怎么写啊?求大神教我
思路:1.首先产生五个随机数0到99 2.把数组放入循环,循环条件与随机数进行比较,循环从0开始99结束,如果相同就替换。
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
for(int i =0;i<100;i++){
//初始化数组;
list.add("~");
}
Random random = new Random();
List<Integer> indexList = new ArrayList<Integer>();
for(int i=0;i<5;i++){
//生成5个不同的随机数,从0~99,然后存放在indexList里,标识位置
int index = getRom(indexList);
indexList.add(index);
System.out.println(index);
//把list里原来的"~"替换掉"+"
list.set(index, "+");
}
for(int i =0;i<list.size();i++){
//查看数组是否替换正确;
System.out.println("---:"+i+" "+list.get(i));
}
}
/**
* 生成5个不同的随机数,从0~99;
* @param indexList
* @return
*/
public static int getRom(List<Integer> indexList){
Random random = new Random();
int index = random.nextInt(100);
if(indexList.contains(index)){
return getRom(indexList);
}
return index;
}
public static void main(String[] args) {
String[] array = new String[100];
for(int i =0;i<array.length;i++){
//初始化数组;
array[i] = "~";
}
Random random = new Random();
for(int i=0;i<5;i++){
//生成5个不同的随机数,来当做下标
int index = random.nextInt(100);
//替换
array[index] = "+";
}
//打印
System.out.println(array.toString());
}