BE/Java

[Java] List

baek-dev 2024. 12. 5. 20:54
  • 요소들은 인덱스로 관리된다 (0부터 시작)
  • 삽입 순서를 유지한다
  • 중복된 값을 허용한다

주요 메서드

메서드 설명
`add(E e)` 요소를 리스트 끝에 추가
`add(int index, E e)` 특정 위치에 요소 추가
`get(int index)` 인덱스에 있는 요소 반환
`set(int index, E e)` 특정 인덱스의 요소를 변경
`remove(int index)` 특정 인덱스의 요소 삭제
`size()` 리스트의 크기 반환
`isEmpty()` 리스트가 비어있는지 확인

ArrayList

내부적으로 배열을 사용하여 데이터를 관리하는 `List`의 구현체

초기 크기를 정하지 않아도 필요에 따라 자동으로 크기가 증가

읽기/검색이 빈번한 작업에 적합함

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> numbers = new ArrayList<>();
        
        // 추가
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);

        // 출력
        System.out.println(numbers); // [10, 20, 30]

        // 삭제
        numbers.remove(1);
        System.out.println(numbers); // [10, 30]
    }
}

LinkedList

이중 연결 리스트 구조로 데이터를 관리하는 `List`의 구현체

메모리 사용량이 많음

삽입/삭제가 빈번한 작업에 적합

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

        // 요소 추가
        list.add("A");
        list.add("B");
        list.addFirst("Start");
        list.addLast("End");

        // 출력
        System.out.println(list); // [Start, A, B, End]

        // 삭제
        list.removeFirst();
        list.removeLast();
        System.out.println(list); // [A, B]
    }
}

 

 

 

 

출처 : ChatGPT

'BE > Java' 카테고리의 다른 글

[Java] Map  (0) 2024.12.07
[Java] Optional  (0) 2024.12.06
[Java] 컬렉션  (0) 2024.12.04
[Java] 래퍼 클래스  (0) 2024.12.03
[Java] break, continue, return  (0) 2024.12.02