Array(배열)과 List(리스트)

Min Kyu Jeon·2021년 8월 25일
1
post-thumbnail

Array

  • 여러 데이터를 하나의 이름으로 그룹핑해서 관리 하기 위한 자료구조
  • 유일한 식별자 인덱스가 있음
  • 배열은 정의와 동시에 길이를 지정하며 길이를 바꿀 수 없음
String[] names = {"전민규","차태웅","김기원","이화수","김유성","박정준","김주성"};
names.lenghs() // 7

Array 단점

  • 기능이 없음

  • 기본적으로 배열은 길이를 바꿀수 없고 배열의 길이를 변경하기 위해서
    다음과 같은 처리가 이루어 져야한다.

    • 새로운 길이의 배열 할당 (메모리 공간 탐색)
    • 데이터 복사
    • 기존 배열 삭제
  • 배열은 인덱스에 따라서 값을 유지하기 때문에, 원소(Element) 삭제되어도 빈 자리(null)가 남게 된다. (불필요한 메모리 공간 차지)

List

  • 빈틈없는 데이터의 적재, 순서가 있는 데이터의 모임 (Sequence)
  • 몇 번째 데이터인가를 나타내는 인덱스 (배열에서는 식별자)
  • JAVA의 Collection Interface로 부터 상속 받음 ( 해당 기능 사용 가능 )

List 기능

  • 처음, 중간, 끝 어디든지 원소를 추가/삭제 가능

ArrayList

  • 말 그대로 배열을 이용해서 구현한 리스트로 인덱스를 이용하여 접근이 빠름
    • 성능은 배열과 동일하다고 볼 수 있다.
  • 데이터 추가/삭제가 느림
    • 내부적으로 배열에 데이터를 저장하기 때문에 데이터를 중간에 삽입시 뒤에있는 데이터들은 한칸씩 뒤로 밀려야 하기 때문, 삭제도 마찬가지

LinkedList

  • 데이터를 저장하는 각 노드가 이전 노드와 다음 노드를 가리키는 일반적인 리스트
  • 데이터 추가/삭제가 빠름
    • 데이터 추가시 노드와의 연결을 끊고 새로운 데이터를 넣어주면 되기 때문 (이전 노드와 다음 노드의 상태만 변경하면 됨)
  • 데이터의 접근이 느림
    • 검색 시 처음부터 노드를 순회해야 하기 때문.

0개의 댓글