배열 뿐만 아니라 데이터를 저장하고 가공하기 위한 객체가 존재한다.
기본 배열보다 더 많은 기능과 유용한 사용성을 보이는 Collection
에 대해 학습하자.
우리는 지금까지 데이터를 저장하기 위해서 배열을 사용했다. 배열에 각종 자료형 변수를 담을 수도 있고, 심지어 클래스도 담을 수 있다
//100개의 HelloClass 객체를 담을 수 있는 배열
HelloClass arr[] = new HelloClass[100];
하지만 배열에는 몇가지 한계점이 존재한다.
- 배열의 개수가 정해지면 수정이 불가능하다는 점
프로그램을 실행하는 동안
arr.length
는 항상 100이다. - 배열의 중간 원소가 삭제되면 중간이 비어있는 형태가 된다. 순차적인 배열을 만들기 위해 배열의 원소를 옮기는 작업을 해야한다.
- 배열 중간에 원소를 삽입하고 싶으면 위와는 반대로 원소를 옮기는 작업을 하고 값을 삽입해야한다.
Collection
Collection
은 java.util.Collection
배열의 이런 한계점을 극복하고 더 발전된 방식으로 데이터를 저장할 수 있는 클래스의 모음이다.
1. ArrayList (배열 리스트)
- 배열 처럼 사용할 수 있는 리스트
- 선형(linier) 구조를 가지고 있다.
- 검색 속도가 굉장히 빠르다.
- 배열과 마찬가지로 index 로 관리된다.
2. LinkedList (연결 리스트)
- 검색 속도는 ArrayList보다 느리다.
- 추가, 삭제가 빈번하게 처리할때 사용한다.
- 게임에 사용하기 적합하다.
- 선형구조를 가지고 있다.
- ArrayList와 굉장히 비슷한 구조를 갖는다.
3. HashMap (해쉬 맵)
- key + value 구조로 관리된다.
- Tree 구조를 갖는다.
0 / \ 0 0 /\ /\ 0 0 0 0
- 검색에서 속도가 굉장히 빠르다. (선형 검색은 검색의 속도를 장담하지 못한다.)
- 데이터를 전부 꺼낼때 불편함이 있다.
4. TreeMap (트리 맵)
- sorting 을 적용할 수 있다. (기본 라이브러리로 제공)
Comments