최원종의 개발 블로그

List 인터페이스 - 컬렉션 본문

Java/JAVA 유용한 클래스

List 인터페이스 - 컬렉션

chl6698 2026. 3. 30. 09:10

ArrayList 와 Vector 는 List 인터페이스를 구현한 클래스

 

계층 구조

Collection
   |
   └── List (인터페이스)
        ├── ArrayList  ← 컬렉션-1 에서 배움
        ├── LinkedList
        └── Vector     ← 컬렉션-2 에서 배움
        
        // List 인터페이스가 "이런 메서드를 반드시 가져야 한다" 는
        //규칙을 정해두면 ArrayList, Vector 가 그 규칙을 따라 구현
        
       // 그래서 두 클래스의 사용법이 거의 동일했던 것

List 의 세 가지 특징

 

//리스트의 3가지 특징
1. 순서 유지  : 넣은 순서대로 저장됩니다 (인덱스 0, 1, 2 ...)
2. 중복 허용  : 같은 값을 여러 번 저장할 수 있습니다
3. 가변 크기  : 데이터를 추가/삭제하면 크기가 자동으로 변합니다

 

배열과 비교

배열  : 순서 있음, 중복 허용, 크기 고정
List  : 순서 있음, 중복 허용, 크기 자동 조절  ← 크기만 다름

 


 

List 선언 방법

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

// 방법 1: ArrayList 타입으로 선언
ArrayList<String> list1 = new ArrayList<>();

// 방법 2: List 타입으로 선언 (더 유연한 방법)
List<String> list2 = new ArrayList<>();

List 타입으로 선언하면 나중에 
new ArrayList<>() 자리에 new LinkedList<>() 나 new Vector<>() 로 바꾸기쉬움

 


주요 메서드

List<String> list = new ArrayList<>();

// 추가
list.add("사과");          // 맨 끝에 추가
list.add(1, "포도");       // 인덱스 1 위치에 삽입

// 조회
list.get(0);               // 인덱스로 가져오기
list.size();               // 실제 개수
list.contains("사과");     // 포함 여부 → true / false
list.indexOf("사과");      // 위치 반환, 없으면 -1

// 삭제
list.remove("사과");       // 값으로 삭제
list.remove(0);            // 인덱스로 삭제
list.clear();              // 전체 삭제

// 확인
list.isEmpty();            // 비어있는지 → true / false

 


핵심 요약

List 인터페이스
  순서 있음, 중복 허용, 크기 자동 조절

구현 클래스
  ArrayList  : 일반적인 상황, 조회 빠름
  Vector     : 멀티스레드 환경 (소켓 서버)

List 타입으로 선언하면 나중에 구현체를 바꾸기 쉬움
  List<String> list = new ArrayList<>();

 


 

실습 코드

package collection.list;

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

public class MoveRating {

    public static void main(String[] args) {
        List<String> movies = new ArrayList<>();

        movies.add("범죄도시 4 - ****");
        movies.add("기생충 - *****");
        movies.add("올드보이 - ****");
        movies.add("왕과 사는 남자 - *****");

        System.out.println("=== 전체 영화 목록 ===");
        for (int i = 0; i < movies.size(); i++) {
            System.out.println(i + ". " + movies.get(i));
        }
        System.out.println("\n 총" + movies.size() + "편");

        //올드보이 삭제
        movies.remove("올드보이 - ****");
        movies.remove(1);
        System.out.println("\n 삭제 후 총" + movies.size() + "편");

        //"기생충" 이 있는지 확인

        System.out.println("기생충 존재여부 확인 " + movies.contains("기생충 - ******"));
    }
}

 

출력 화면

'Java > JAVA 유용한 클래스' 카테고리의 다른 글

Map 인터페이스 - 컬렉션  (0) 2026.03.31
Set 인터페이스 - 컬렉션  (0) 2026.03.30
Vector - 컬렉션  (0) 2026.03.30
ArrayList - 컬렉션  (0) 2026.03.30
컬렉션 프레임워크(Collections Framework)  (0) 2026.03.27