ArrayList vs LinkedList

2022. 2. 23. 18:33·Programming/Java

모두 Java에서 제공하는 List 인터페이스를 구현한 Collection 구현체이다. 하지만 인터페이스만 같을 뿐 내부적으로 동작하는 방식은 다르다.

 

ArrayList

- 내부적으로 데이터를 관리.

- 데이터 추가/ 삭제를 위해 임시 배열을 생성해 데이터를 복사

- 인덱스 기반 자료구조이기 때문에 검색에 유리

- 대량의 자료를 추가/삭제 하는 경우 그만큼 데이터의 복사-> 성능 저하

 

LinkedList

- 데이터를 저장하는 각 노드는 이전 노드와 다음 노드 상태만 알고 있다. 

- 추가/ 삭제 시 불필요한 데이터 복사가 없어 데이터 추가/ 삭제에 유리

- 검색 시, 인덱스가 없기 때문에 처음부터 노드 순회-> 성능 저하


데이터 검색, 삽입, 삭제 시 성능 비교

검색

- ArrayList: O(1). 인덱스 기반 자료구조

- LinkedList: 최악의 경우, O(N)

 

삽입, 삭제

- ArrayList: 최악의 경우, O(N)

- LinkedList: O(1). 이전 노드, 다음 노드를 참조하는 상태만 변경하면 됨.

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

SOLID, 객체 지향 설계 원칙  (0) 2022.02.25
업캐스팅, 다운캐스팅  (0) 2022.02.23
Collections.sort()  (0) 2022.02.23
Wildcard <?>  (0) 2022.02.22
Generic Method (Basic)  (0) 2022.02.22
'Programming/Java' 카테고리의 다른 글
  • SOLID, 객체 지향 설계 원칙
  • 업캐스팅, 다운캐스팅
  • Collections.sort()
  • Wildcard <?>
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    clone graph
    RR
    runner 기법
    @JsonNaming
    운영체제
    pacific atlantic water flow
    wildcards
    lower bounded wildcards
    minimum number of arrows to burst balloons
    rotting oranges
    AuthenticationSuccessHandler
    Process
    Climbing Stairs
    BFS
    Oauth2
    트랜잭션
    제네릭
    fcfs
    준영속 엔티티
    JSCode
    @JsonProperty
    Thread
    Generic
    LinkedList
    algorithm
    Reorder List
    socar
    디자인 패턴
    OS
    추상화 클래스
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
ArrayList vs LinkedList
상단으로

티스토리툴바