Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 ArrayList의 특정 위치에 요소를 삽입하는 방법

Java에서 ArrayList 클래스의 add() 메서드를 사용하면 리스트에 새로운 요소를 손쉽게 추가할 수 있습니다. 이 메서드는 용도에 따라 두 가지 형태로 오버로딩되어 제공됩니다.

  • add(E e) − 객체(요소)를 매개변수로 받아 리스트의 맨 끝에 추가합니다.
  • public void add(int index, E element) − 추가할 요소와 함께 삽입할 위치를 나타내는 정수 값(인덱스)을 받아, 리스트의 지정된 위치에 요소를 삽입합니다. 이때 해당 위치에 이미 존재하던 요소와 그 이후의 요소들은 자동으로 오른쪽으로 한 칸씩 밀려나며, 각 요소의 인덱스가 1씩 증가합니다.

즉, 인덱스 값을 함께 받는 add() 메서드를 활용하면 원하는 위치에 정확히 요소를 삽입할 수 있습니다.

예제 코드

다음 예제에서는 여러 문자열 요소로 구성된 ArrayList를 만든 뒤, add(6, "Hadoop")을 호출하여 6번째 위치(인덱스 6)에 새로운 요소를 삽입하고, 삽입 전후의 리스트 내용을 비교해 확인합니다.

import java.util.ArrayList;
import java.util.Iterator;
public class OccurenceOfElements {
   public static void main(String args[]) {
      ArrayList <String> list = new ArrayList<String>();
      //ArrayList 객체 생성 및 요소 추가
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("OpenNLP");
      list.add("JOGL");
      list.add("Hadoop");
      list.add("HBase");
      list.add("Flume");
      list.add("Mahout");
      list.add("Impala");
      System.out.println("Contents of the array list (first to last): ");
      Iterator<String> it = list.iterator();
      while(it.hasNext()) {
         System.out.print(it.next()+", ");
      }
      //인덱스 6 위치에 요소 삽입
      list.add(6, "Hadoop");
      it = list.iterator();
      System.out.println();
      System.out.println("Contents of the array list after inserting new element: ");
      while(it.hasNext()) {
         System.out.print(it.next()+" ");
      }
   }
}

실행 결과

Contents of the array list (first to last):
JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala,
Contents of the array list after inserting new element:
JavaFX Java WebGL OpenCV OpenNLP JOGL Hadoop Hadoop HBase Flume Mahout Impala

주요 포인트 정리

  • 리스트의 크기 범위를 벗어난 인덱스를 지정하면 IndexOutOfBoundsException이 발생하므로 주의해야 합니다.
  • 중간 위치에 요소를 삽입하면 이후 요소들이 모두 이동하기 때문에, 빈번한 삽입 작업이 필요하다면 성능 영향을 고려하는 것이 좋습니다.