본문 바로가기

etc/Language

[Java] ArrayList, Generics

java.util.ArrayList는 Java Collection Framework에 속하는 클래스로 가변 크기의 배열 구현

 

Resizable-array implementation of the List interface. 

이 클래스는 List 인터페이스를 구현하고 배열 기반 데이터 구조를 제공

 

주요 특징

- 동적 크기

요소가 추가되거나 제거되면 배열의 크기 자동 조정

 

- 빠른 랜덤 액세스

인덱스를 사용해 빠르게 요소에 접근

 

- 비동기

Note that this implementation is not synchronized. 

동기화를 제공하지 않으므로 여러 스레드 환경에서는 외부적 동기화를 고려

 

 

Constructor, 생성자

- ArrayList()

기본 배열의 크기 10으로 빈 배열 생성

 

- ArrayList(collection<? extends E> c)

지정된 컬렉션의 요소를 포함한 목록 생성

 

- ArrayList(int initialCapacity)

초기 배열 크기를 지정하여 빈 배열 생성

 

ArrayList<String> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>(Arrays.asList("1","2"));
ArrayList<String> list3 = new ArrayList<>(list2);
ArrayList<String> list3 = new ArrayList<>(15);

 

 

주요 메소드

add(E e)  배열이 끝에 요소 추가

add(int index, E element)  지정 인덱스에 요소 추가

 

size() 목록에 있는 요소의 수 반환

isEmpty() 목록이 비어 있으면 true 반환

 

get(int index) 특정 인덱스의 요소 반환

contains(Object o) 특정 요소가 포함되어 있으면 true 반환

indexof(Object o) 특정 요소의 첫 번째 인덱스 반환, 요소가 없을 경우 -1 반환

 

remove(int index) 특정 인덱스의 요소 제거

clear() 모든 요소 제거

 

 

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

 

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("Apple");
        list.add("Banana");
        list.add("Cherry");

        System.out.println("리스트: " + list);
        list.remove("Banana");
        System.out.println("제거 후 리스트: " + list);
    }
}

 

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

 

ArrayList<String> 

<>(제네릭)을 사용해 문자열만 저장할 수 있는 리스트 선언

 

new ArrayList<>()

새로운 ArrayList 객체 생성, <>은 제네릭 타입을 컴파일러가 추론하도록 함

 

 

<> Generics, 제네릭

꺾쇠 괄호 키워드를 사용, 다이아몬드 연산자라고 함

클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법

'etc > Language' 카테고리의 다른 글

[Java] 익숙해지기  (1) 2025.02.06
[Java] Shallow Copy, Deep Copy  (1) 2025.01.30
[Java] 개념 구분  (1) 2025.01.28