ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배열 (Array)
    알고리즘/자료구조 2019. 8. 17. 17:33

    배열은 이미 많이 사용하고 있기때문에 아는 내용이지만 좀더 명확하게 배열의 장단점 및 특징을 정리해보려고 한다.

    배열도 하나의 자료구조(Data Structure)이고 이걸 인지하면 자료구조를 바라보는 시선이 조금 편안해진다..

     

     

    https://www.opentutorials.org/module/1335/8677

     

     

    특징

    -★index를 이용해 식별-저장-데이터를 가져온다.

    -그룹으로 관리되고, 그룹에 해당되는 데이터만 처리가 가능하다.

    -반복문(for, while, iterator등)을 이용하여 데이터에 접근하는 등 처리를 한다.

    -데이터가 많고 그룹관리가 필요할때 배열을 사용한다.

    -배열은 하나의 이름으로 그룹핑하여 관리하게 된다.

     

     

    한계, 단점

    만약 한 학급을 배열에 넣어 관리할때, 한 학생이 전학을 간다면?

    인덱스3에 null값이 들어있다고 가정하면 반복문으로 출력시 순서대로 이름과 중간에 null값이 출력이 될것이다.

    조건문을 통해 null이 아닌 값만 출력할 수도 있지만, 수십개의 반복문이 있을시 수십개의 조건문이 뒤따라 와야한다.

     

     

    해결?

    이렇게 빈 element를 뒤에 element로 메꿔준다. 이렇게 빈틈없이 연속으로 이어지는 자료구조가 List 이다.

    여기에도 문제가 생길 수 있는데, 만약 기존에 프로그램에서 index값을 이용해 데이터를 가져왔다면, 인덱스 3번부터는 제대로된 데이터를 가져올 수 없을 것이다.

     

    따라서 인덱스값이 중요하다면 조건문을 사용, 그렇지 않다면 list를 사용하면 된다.

     

     

    Java에서 배열의 단점

    값이 지정된 배열의 개수를 알아내는 기능이 없다. 알고싶다면 데이터를 넣거나 제거시 기록해야한다.

    배열의 크기를 변경할 수 없고 배열 생성시 크기가 결정된다.

     

     

    장점

    데이터크기가 확정적일때 메모리와 처리속도면에서 좋다. 

    다른 자료구조의 부품역할을 한다.

    기능이 없고(기능이 단순) 크기가 정해져있기 때문에 작고 가볍다. 빠르다. -> 다른 자료구조의 부품이 되기 좋다.

    댓글

Designed by Tistory.