반응형
About Collection & Generic…
- 여러 자료 구조들을 Generic 기법으로 구현해놓은 것
- Generic은 타입이 정해지지 않은 틀로 C++의 templaate과 비슷하다.
- 가변 크기이기 때문에 고정 크기의 배열보다 객체들을 쉽게 삽입, 삭제, 검색하게 해준다.
- Collection의 요소로는 객체만 가능하다. 기본 타입은 Wrapper Class로 자동 Boxing되어 저장된다.
- <E>, <K>, <V>등은 '타입 매개 변수'로 Collection의 요소를 일반화시킨 타입이다. 특정 타입만 다루지 않고, 여러 종류의 타입을 사용할 수 있기 위해 사용한다.
컬렉션의 종류
ArrayList
- 중간에 추가, 삭제 시 배열로 하던 방식처럼 인덱스를 이동시킨다.
- 때문에 오버헤드가 많이 발생한다는 특징이 있다.
- 추가/삭제가 많지 않은 자료구조에 적합하다.
LinkedList
- 중간에 포인터 하나만 바꿔주면 되므로 오버헤드가 적다.
- 대신에 요소들의 포인터들 때문에 메모리 효율이 ArrayList보다 나쁘다.
- 추가/삭제가 빈번한 자료구조에 적합하다.
Vector
- ArrayList와 유사하나, Thread 동기화를 보장한다.
Map
- 키는 Set으로, 값은 List로 구성되어 있다.
- 예를 들어, LinkedHashMap은 값들이 LinkedList로 구성되어 있는 것.
컬렉션 업캐스팅하여 사용하기
List<> list = new ArrayList<>();
유연하게 정렬 방법을 바꿀 수 있게하기 위해 처음부터 업캐스팅해서 선언하는 습관을 들인다.
예를 들면 ArrayList 선언 시 List로 업캐스팅하여 선언하면
향후 LinkedList, Vector 등 다른 구현클래스들로 간단하게 교체할 수 있기 때문이다.
참고
2021.05.11 - [IT&프로그래밍/Java] - Java | 업캐스팅, 다운캐스팅, instanceof
반응형
'개발_웹 > Java' 카테고리의 다른 글
Java | 필터를 이용한 한글 인코딩 (0) | 2021.05.26 |
---|---|
Java | 접근 지정자 (Access Modifier) (0) | 2021.05.19 |
Java | 예외 처리의 3가지 방식 (0) | 2021.05.15 |
JSP | 숫자 앞자리 0으로 채우는 팁 (패딩) (0) | 2021.05.12 |
Java | 업캐스팅, 다운캐스팅, instanceof (0) | 2021.05.11 |