logo

Java의 배열에 요소 추가

배열은 메모리의 연속적인 위치에 저장된 유사한 유형의 요소 모음입니다. 배열의 가장 큰 장점은 배열 요소에 무작위로 액세스할 수 있는 반면, 연결 목록의 요소에는 무작위로 액세스할 수 없다는 것입니다.

~ 안에 자바 , 배열 즉, 배열의 크기가 고정되어 있어 배열에 새 요소를 직접 추가할 수 없습니다. 그러나 배열에 요소를 추가하는 방법에는 여러 가지가 있습니다. arr 배열이 있고 여기에 요소를 추가해야 한다고 가정해 보겠습니다. 다음 방법을 사용하여 arr에 요소를 추가할 수 있습니다.

  1. arr보다 더 큰 크기의 배열을 생성합니다.
  2. ArrayList를 사용하여
  3. 요소를 이동하여 arr의 크기를 조정합니다.

우리가 설명한 방식을 자세히 살펴보겠습니다.

더 큰 크기의 배열 만들기

Java 배열에 요소를 추가하려면 더 큰 크기의 또 다른 배열을 만들고 배열의 모든 요소를 ​​다른 배열로 복사한 다음 새로 생성된 배열의 마지막에 새 값을 배치할 수 있습니다. 그러나 이는 배열에 요소를 추가하는 효율적인 방법이 아닙니다. 아래 예에서는 새로 생성된 newArr 배열의 도움으로 요소 7이 배열 arr에 추가됩니다. 다음 예를 고려하십시오.

 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = {1,2,3,4,5,6}; int n = arr.length; int newArr[] = new int[n+1]; int value = 7; System.out.println(Arrays.toString(arr)); for(int i = 0; i<n; i++) { newarr[i]="arr[i];" } newarr[n]="value;" system.out.println(arrays.tostring(newarr)); < pre> <h3>Using ArrayList</h3> <p>We can use <a href="/java-arraylist">ArrayList</a> as the intermediate structure and add the elements into the ArrayList using the add () method. ArrayList is a data structure that allows us to dynamically add elements. However, we can convert the ArrayList to the array by using the toArray() method. Hence this process involves the following steps.</p> <ol class="points"> <li>Convert Array into ArrayList using asList() method.</li> <li>Add elements into the array list using the add() method.</li> <li>Convert the ArrayList again to the array using the toArray() method.</li> </ol> <p>Consider the following example.</p> <pre> import java.util.ArrayList; import java.util.Arrays; public class JavaAddElementUsingList { public static void main(String[] args) { // TODO Auto-generated method stub Integer arr[] = {1,2,3,4,5,6}; System.out.println(&apos;Array:&apos;+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println(&apos;Array after adding element: &apos;+Arrays.toString(arr)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] </pre> <h3>Shifting elements to adjust the size of the array</h3> <p>In this method, we will add the elements to the specified index in the array. Likewise, the above two processes will use a new destination array with a larger size than the original array. However, it will be tricky to shift the destination array elements after copying all elements from the original array to destination array.</p> <p>In this method, we will,</p> <ol class="points"> <li>Create a new destination array with a larger size than the original array.</li> <li>Copy all the elements from the original array to the new destination array</li> <li>Shift the elements after the given index to the right until it reaches the end of the array.</li> <li>Insert the new element at the given index.</li> </ol> <p>Consider the following example in which we will add a specific value at the given index 3 in the original array using a destination array.</p> <pre> import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println('array after adding value: '+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;></pre></n;>

산출:

 Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] 

요소를 이동하여 배열 크기 조정

이 방법에서는 배열의 지정된 인덱스에 요소를 추가합니다. 마찬가지로 위의 두 프로세스는 원래 배열보다 더 큰 크기의 새 대상 배열을 사용합니다. 그러나 원본 배열의 모든 요소를 ​​대상 배열로 복사한 후 대상 배열 요소를 이동하는 것은 까다로울 수 있습니다.

이 방법에서는,

  1. 원래 배열보다 더 큰 크기의 새 대상 배열을 만듭니다.
  2. 원래 배열의 모든 요소를 ​​새 대상 배열로 복사합니다.
  3. 주어진 인덱스 뒤의 요소를 배열의 끝에 도달할 때까지 오른쪽으로 이동합니다.
  4. 주어진 인덱스에 새 요소를 삽입합니다.

대상 배열을 사용하여 원래 배열의 지정된 인덱스 3에 특정 값을 추가하는 다음 예를 고려하십시오.

 import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println(\'array after adding value: \'+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;>