IT/Java

[Java] 배열의 중간에 새로운 값 추가하기

hi.anna 2021. 7. 17. 00:07

 

Java 배열의 중간에 새로운 원소를 추가하는 방법을 소개합니다.

 

  1. 반복문 사용하기
  2. ArrayList 활용하기

 

 

1. 반복문 사용하기

import java.util.Arrays;

public class AddArray {
    
    public static void main(String[] args) {
        
        // 원본 배열
        String[] arr = {"A", "B", "D"};

        // 추가할 value, index
        String newValue = "C";
        int position = 2;

        // 새로운 배열의 길이
        int newArrLength = arr.length + 1;

        // 새로운 배열 생성
        String[] newArr = new String[newArrLength];

        // 지정된 위치에 새로운 값 추가하며, 새로운 배열에 담기
        for( int i = 0; i < newArrLength; i++)  {
            if(i < position)    {
                newArr[i] = arr[i];
            } else if( i == position)   {
                newArr[i] = newValue;
            } else {
                newArr[i] = arr[i - 1];
            }
        }

        // 결과 출력
        System.out.println(Arrays.toString(newArr));  // [A, B, C, D]

    }
}

 

Java의 배열은 고정된 길이를 가집니다.

따라서, 배열에 새로운 값을 추가하기 위해서는 

늘어난 길이만큼의 크기를 가지는 배열을 새로 만들어주고,

새로운 배열에 기존 값과 추가할 값을 넣어주었습니다.

 

 

 

2. ArrayList 활용하기

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class AddArray {
    
    public static void main(String[] args) {
        
        // 원본 배열
        String[] arr = {"A", "B", "D"};

        // 추가할 value, index
        String newValue = "C";
        int position = 2;

        // 배열 -> List 변환
        List<String> list = new ArrayList<>(Arrays.asList(arr));
        
        // List에 새로운 값 추가
        list.add(position, newValue);

        // List -> 배열 변환
        arr = list.toArray(arr);

        // 결과 출력
        System.out.println(Arrays.toString(arr));  // [A, B, C, D]

    }
}

 

배열을 List로 변환하고,

List의 add() 메소드를 활용하여

원하는 위치에 새로운 값을 추가한 다음,

List를 다시 배열로 변환하였습니다.

 


 

Java에서 배열의 중간에 새로운 값을 추가하는 방법을 알아보았습니다.

 

 

반응형