[자료구조] Array vs ArrayList vs LinkedList

2023. 7. 19. 11:27·CS 지식/[자료구조]

  • Array는 index로 빠르게 값을 찾는 것이 가능함
  • LinkedList는 데이터의 삽입 및 삭제가 빠름
  • ArrayList는 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림

배열

int arr[10];
String arr[5];
  • 선언할 때 크기와 데이터 타입을 지정해야 함
  • 메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조다.
  • 계속 데이터가 늘어날 때, 최대 사이즈를 알 수 없을 때는 사용하기에 부적합
  • 중간에 데이터를 삽입하거나 삭제할 때도 매우 비효율적
  • 특정 인덱스에 새로운 값을 넣어야 한다면 원래 값을 밀어내고 덮어씌워야 함
  • 인덱스가 존재하기 때문에 위치를 바로 알 수 있어 검색이 편함

→ 이를 해결하기 위해 나온 것이 List

arrayList

  • 배열처럼 크기를 정하지 않아도 됨
  • 배열에서 인덱스가 중요하다면 리스트에서는 순서가 중요
  • 크기가 정해져있지 않기 때문에 중간에 데이터 추가/삭제 용이
  • 인덱스를 가지고 있어서 검색도 빠름
  • 그러나 중간에 데이터를 추가/삭제할 때 시간이 오래 걸림

연결 리스트

  • 단일, 다중 등
  • 한 노드에 연결될 노드의 포인터 위치를 가리키는 방식
  • 단일은 뒤에 노드만 가리키고, 다중은 앞뒤 노드를 모두 가리키는 차이
  • 특정 값을 찾는 건 비효율적
  • 배열과 arrayList에서는 인덱스가 있어서 검색이 빠르지만 연결 리스트는 순차검색에 있어서는 시간이 더 걸림
저작자표시 비영리 변경금지 (새창열림)

'CS 지식 > [자료구조]' 카테고리의 다른 글

[자료구조] 트리(Tree)  (0) 2023.07.19
[자료구조] 힙(Heap)  (0) 2023.07.19
[자료구조] 스택 & 큐  (0) 2023.07.19
[자료구조] 연결 리스트(Linked List)  (1) 2023.07.19
[자료구조] 배열  (0) 2023.07.18
'CS 지식/[자료구조]' 카테고리의 다른 글
  • [자료구조] 힙(Heap)
  • [자료구조] 스택 & 큐
  • [자료구조] 연결 리스트(Linked List)
  • [자료구조] 배열
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    스프링부트
    Spring Security
    CS
    시큐리티
    데이터베이스
    pcce 기출문제
    Flutter
    Linux
    CS지식
    데이터
    spring
    스프링 부트 쇼핑몰 프로젝트 with JPA
    자바
    baekjoon
    springboot
    리눅스마스터 1급
    DB
    python
    리눅스
    스프링
    프로그래머스
    JPA
    Oracle
    backjoon
    백준
    리눅스마스터
    postgresql
    programmers
    플러터
    Java
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[자료구조] Array vs ArrayList vs LinkedList
상단으로

티스토리툴바