java一个数组替换另一个数组

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());


}