Java/컬렉션

[Java]ArrayList 특정 위치에 값 추가

DevStory 2022. 6. 23.

ArrayList 특정 위치에 값 추가

이번 포스팅은 Java의 ArrayList 특정 위치에 값을 추가하는 방법을 소개합니다.


add() 메서드

ArrayList의 add() 메서드는 지정된 위치에 요소를 추가합니다. 해당 위치에 요소가 있는 경우 오른쪽(index + 1)으로 이동합니다.

// index: element를 삽입할 위치
// element: 지정된 위치(index)에 삽입될 값
public void add(int index, Object element)

만약, index가 ArrayList의 size() 보다 크거나 0보다 적은 경우 IndexOutOfBoundsException 예외가 발생합니다.

 

다음 예제는 Integer 타입의 ArrayList에서 add() 메서드를 사용하여 2번째 인덱스에 3, 5번째 인덱스에 6을 삽입합니다.

public class Main {
  public static void main(String args[]) {
    ArrayList<Integer> al = new ArrayList<Integer>(
            Arrays.asList(1, 2, 4, 5, 7)
    );

    System.out.println("3 삽입 전: " + al);

    al.add(2, 3);
    System.out.println("3 삽입 후: " + al);

    al.add(5, 6);
    System.out.println("6 삽입 후: " + al);
  }
}

실행 결과

3 삽입 전: [1, 2, 4, 5, 7]
3 삽입 후: [1, 2, 3, 4, 5, 7]
6 삽입 후: [1, 2, 3, 4, 5, 6, 7]

addAll() 메서드

지정된 위치에 여러 개의 요소를 추가하고 싶은 경우 addAll() 메서드를 사용합니다.

// index: 컬렉션 객체를 삽입할 위치
// c: 지정된 위치(index)에 삽입될 컬렉션 객체
public boolean addAll(int index, Collection c)

addAll() 메서드는 add() 메서드와 다르게 반환 타입이 boolean입니다. 컬렉션 객체를 지정된 위치에 정상적으로 삽입한 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.

 

삽입될 컬렉션 객체가 null인 경우 NullPointerException 예외가 발생합니다.

 

다음 예제는 Integer 타입의 ArrayList에서 addAll() 메서드를 사용하여 지정된 위치에 여러 개의 요소를 추가합니다.

public class Main {
  public static void main(String args[]) {
    ArrayList<Integer> al = new ArrayList<Integer>(
            Arrays.asList(1, 2, 6, 7)
    );

    System.out.println("addAll() 메서드 호출 전: " + al);

    boolean result = al.addAll(2, Arrays.asList(3, 4, 5));
    System.out.println("addAll() 메서드 반환 결과: " + result);
    System.out.println("addAll() 메서드 호출 후: " + al);
  }
}

실행 결과

addAll() 메서드 호출 전: [1, 2, 6, 7]
addAll() 메서드 반환 결과: true
addAll() 메서드 호출 후: [1, 2, 3, 4, 5, 6, 7]

정리

  • ArrayList의 특정 위치에 단일 값을 삽입하는 경우 add() 메서드를 사용합니다.
  • ArrayList의 특정 위치에 여러 값을 삽입하는 경우 addAll() 메서드를 사용합니다.
반응형

댓글