[JAVA/자료구조] 선형구조 - 순차 리스트(ArrayList)

경운·2025년 12월 21일

Data Structure

목록 보기
6/7
post-thumbnail

💡 순차 리스트(Sequential List)

  • 데이터들이 순서대로 메모리에 연속으로 저장되는 것 (ex. 배열)
  • 각 데이터들은 다음 데이터와 연결되어 있고 각 데이터는 인덱스를 통해 접근이 가능

💡 리스트 (ArrayList)

  • 컬렉션 프레임워크의 List의 인터페이스를 사용하여 구현한 구현체

순차 리스트 종류에는 ArrayList, LinkedList, Vector 등이 있다

List<자료형> list = new ArrayList<>();

객체를 생성할 때, 데이터 타입은 제너릭 타입의 매개변수로 사용
객체 자료형에는 어떤 것이 들어갈까??

객체 자료형 종류

  1. Integer - 정수 값을 저장하는 타입
  2. String - 문자열 값을 저장하는 타입
  3. Double - 실수 값을 저장하는 타입
  4. Boolean - 논리 값(True/False)을 저장하는 타입
  5. Object - 모든 객체 타입을 저장할 수 있는 타입

ArrayList의 특징

  • 동적 배열(Array)
    → 일반 배열과는 달리 자동으로 크기를 조절 할 수 있음

  • 조회(get) 속도가 매우 빠름
    → 인덱스를 알면 O(1)의 속도로 한 번에 데이터를 찾아감

  • 데이터 추가/삭제가 느림 (특히 중간에 삽입 / 삭제할 때)
    → 중간에 데이터가 삽입되거나 삭제되면, 그 뒤의 모든 데이터를 한 칸씩 밀거나 당기는 작업이 필요


ArrayList 선언 방법

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

List<String> fruits = new ArrayList<>();
fruits.add("사과");
fruits.add("바나나");
fruits.add("딸기");

String secondFruit = fruits.get(1);

System.out.println(fruits); // [사과, 바나나, 딸기]
System.out.println(secondFruit); // 바나나

배열과 ArrayList 비교

비교 항목배열(Array)ArrayList
크기(size)고정 (헌 번 생성하면 변경 불가)동적 (데이터 양에 따라 자동으로 늘어남)
조회매우 빠름(인덱스로 바로 접근)빠름
삽입/삭제어려움편함
데이터타입기본형(int),참조형 모두 가능참조형만 가능

사실 배열이랑 ArrayList는 큰 차이는 없다
💡단지 배열 크기 늘리기, 데이터 복사하기 작업을 ArrayList가 대신해주는 것이다
코딩 테스트를 할 떄 크기가 정해져 있다면 배열을 사용하는 것이 조금 더 빠르다

0개의 댓글