1. 컬렉션 프레임워크(Collection Framework) 란?
여러 데이터들을 효율적으로 다루기 위한 자료구조들을 클래스로 구현해놓은 집합을 말한다.
C++의 STL (Standard Template Library)와 비슷한 개념이라고 보면 된다.
컬렉션의 장점을 배열로 예시를 들어보자면,
일반적인 배열은 정적으로 메모리를 할당하기 때문에, 배열의 크기가 고정되어 추가적인 공간이 필요할 경우 문제가 발생할 수 있다. 하지만 컬렉션의 클래스를 이용하면 메모리를 동적으로 할당할 수 있다.
List와 Set 인터페이스는 Collection 인터페이스를 상속받는 반면 Map 인터페이스는 구조상의 차이 (key와 value의 쌍을 가지고 있는 구조)로 별도로 정의된다.
2. 컬렉션의 종류
위 그림에서 볼 수 있듯이, 컬렉션 프레임워크의 주요 인터페이스는 크게 4가지로 나눌 수 있다.
ArrayList, LinkedList, Hashmap 등의 클래스들은 정말 많이 쓰이는 클래스들이므로 사용법을 알아놓으면 코딩이 한결 편해질 것이다.
3. 컬렉션의 특징
앞선 표에서 눈치챘겠지만, 독특하게도 컬렉션 클래스의 이름 끝에는 <E>, <V>, <K> 등이 항상 붙어 있다. 이 부분을 타입 매개변수라고 한다. 이러한 기법을 제네릭 (generics) 이라고 부른다.
제네릭(generics) 이란?
한 번의 정의로 다양한 타입의 데이터들을 다룰 수 있는 방법이다. (데이터 형식에 의존하지 않기 위해 만든 방법)
- E - Element
- T - Type
- K - Key
- V - Value
T와 E는 사실 똑같아서 둘 중 어떤 것을 쓰든 무방하지만,
배열형태의 클래스(ArrayList, Vector, LinkedList 등등..)에서 제네릭을 사용할 때에는 E (Element)를 보통 사용한다.
많이 쓰이는 컬렉션 중 하나인 ArrayList <E>로 간단한 예시를 들어 보겠다.
//컴파일 오류 발생. int 사용 불가
ArrayList<int> a = new ArrayList<int>(5);
//정상 실행 코드. 정수형 arraylist를 선언하려면 Integer을 사용
ArrayList<Integer> a = new ArrayList<Integer>(5);
//String형 ArrayList 선언하기
ArrayList<String> s = new ArrayList<String>();
ArrayList를 비롯한 주요 클래스들의 구체적인 사용 방법에 대해서는 추후 포스팅하도록 하겠다.
'Java' 카테고리의 다른 글
[Java] - ArrayList 기본 사용법 (0) | 2024.07.10 |
---|