ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자료구조] 배열(Array) 이란?
    자료구조 2021. 5. 20. 20:46
    반응형

    자료 구조의 기본이 되는 배열과 배열을 다루기 위한 ArrayList를 알아봅니다.

     

    배열 (Array)

    배열이란?

    배열은 연관된 데이터를 모아서 관리하기 위해서 사용되는 데이터 타입입니다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 저장하기 위한 것이라고 할 수 있습니다.

     

     

     

    배열 생성 및 사용하기

    String[] fruits = new String[4];

    자바 프로그램에서 위 코드로 배열을 생성하면 컴퓨터는 메모리에 크기 4 만큼의 공간을 할당해서 사용자가 사용할 수 있도록 합니다.

     

    1000 1001 1002 ...        
      null
    [0]
    null
    [1]
    null
    [2]
    null
    [3]
         
                   
                ... 1031

     

    배열은 메모리상에 고정된 크기의 연속된 공간을 갖기 때문에 한 번 생성된 배열의 크기는 변경할 수 없습니다.

    그래서 처음 배열을 생성할 때 크기를 적절하게 지정해주어야 합니다.

     

    Primitive Type의 배열을 초기화하면 값이 비어있는 것이 아니라 Type별 기본 값이 저장되고,  Reference Type의 배열은 기본 값인 null로 초기화됩니다.

     

    fruits[0] = "apple";
    fruits[1] = "grape";
    fruits[2] = "melon";
    fruits[3] = "banana";

    사용자는 배열의 인덱스를 이용해서 값에 접근할 수 있고, 컴퓨터는 해당 배열의 인덱스를 통해서 메모리 주소를 알 수 있기 때문에 배열 원소에 접근할 때 O(1)의 시간복잡도를 갖습니다.

     

    1009 1010 1011 1012
    "apple" "grape" "melon" "banana"
    [0] [1] [2] [3]

     

     

     

    배열의 한계

    1. 배열을 생성할 때 크기를 정해야합니다.
      - 배열에 담을 데이터의 수가 정확하지 않을 때 크기를 정하기 애매하다.

      - 배열의 크기를 작게하면 원하는 만큼의 데이터를 담지 못할 수 있고, 크게한다면 메모리가 낭비될 수 있다.
    2. 프로그램을 작성하다보면 배열 중간에 데이터를 삽입하거나 제거해야하는 경우가 생기는데 배열은 변경만 할 수 있다.
    3. 배열의 원소 값을 중복없이 관리하기 힘들다.

     

    -> JAVA의 Collection으로 관리하면 해결할 수 있다.

     

     

     

     

    반응형

    '자료구조' 카테고리의 다른 글

    [자료구조] 해싱, 해시 함수, 해시맵 이란?  (0) 2021.05.30
Designed by Tistory.