Java

[Java] Link 인터페이스를 구현한 ArrayList와 LinkedList

bornsoon 2024. 10. 21. 15:11

List ← 인덱스 기반인 배열의 오버헤드 발생 문제점을 해결 (인터페이스)

  • 중복허용
  • 가변적 크기
  • 입력된 순서대로 저장

코드에서 list를 구현한 클래스명만을 바꾸기만 하면 프로그램의 자료구조를 바꿀 수 있음.

 

ArrayList ← List를 구현한 클래스

LinkedList ← 다른 알고리즘으로 List를 구현한 크래스

  • 순차적인 처리에 빠른 속도 제공
  • 인덱스를 이용한 요소 접근

ArrayList<Integer> array_List = new ArrayList<>();

ArrayList 클래스의 메소드와 멤버변수를 쓸 수 있음

List<Integer> array_List = new ArrayList<>();

List의 메소드만 쓰고 싶을 경우

ArrayList의 메소드

  • add(x)
  • size()
  • indexOf(idx) // 인덱스가 있으면 인덱스 값을 반환, 없으면 -1을 반환
  • set(idx, x) // ArrayList의 추가 삭제는 비효율적
  • remove(idx) // ArrayList의 추가 삭제는 비효율적

리스트의 크기를 동적으로 관리

리스트 크기가 자주 달라지면(원소의 이동이 많을 경우) ArrayList보다 LinkedList가 더 적합

배열은 기본타입(int, char 등)rhk object를 담을 수 있지만, ArrayList는 object만 담을 수 있음

LinkedList의 메소드

원소의 삽입, 삭제가 잦을 경우에 좋음

탐색에는 비효율적 (순차접근만 가능함)

728x90

'Java' 카테고리의 다른 글

[Java] Java의 인터페이스  (0) 2024.10.22
[Java] Set 인터페이스와 Map 인터페이스  (0) 2024.10.21
[Java] 실수 float, double  (0) 2024.10.18
[Java] 입력  (0) 2024.10.18
[Java] 변수  (0) 2024.10.14