Изменить исходный массив на другой массив в java

#java

#java

Вопрос:

Я создал простой метод вставки для вставки значения в массив. Но мне нужен какой-то способ изменить мой исходный массив после использования этого метода. Например, мой массив содержит 5 чисел. После использования этого метода вставки мне нужно изменить его на 6 чисел.

 public class inserting {
    public static void main(String[] args) {
        int a[]={5,3,1,6,7};
        insert(0,10,a);
        //i need to change my array like this = [10, 5, 3, 1, 6, 7] after apply insert method
    }
    static void insert(int pos, int val, int arr[]){
        int newArr[]=new int[(arr.length) 1];
        for(int i=arr.length; i>pos; i--){
            newArr[i]=arr[i-1];
        }
        newArr[pos]=val;
        for(int i=0; i<pos; i  ){
            newArr[i]=arr[i];
        }
       
        
    }
}
 

мне нужно изменить свой a массив следующим образом = [10, 5, 3, 1, 6, 7] после применения метода вставки

Комментарии:

1. Выполните insert функцию return new array и измените на a = insert(0,10,a);

Ответ №1:

В том, как вы это сделали, нет ничего плохого. Просто верните новый массив в качестве возвращаемого типа. Но вы можете захотеть проверить методы в:

Массивы
System.arraycopy

У них есть несколько методов, помогающих копировать значения.

Вот пример использования последнего.

 static int[] insert(int pos, int val, int arr[]){
    int newArr[]=new int[(arr.length) 1];
    System.arraycopy(arr,0,newArr, 0, pos);
    newArr[pos] = val;
    System.arraycopy(arr, pos, newArr,pos 1,arr.length-pos);
    return newArr;
}