자바에서의 컬렉션 = 자료구조의 모음
- List
- Set
- Map
메모리상에서 자료를 구조적으로 처리하는 방법을 자료구조라 일컫는데
(→ 배열)
컬렉션(Collection)은 자바에서 제공하는 자료구조를 담당하는 프레임워크
추가, 삭제, 정렬 등의 기능처리가 간단하게 해결 되어 자료구조적 알고리즘을 구현할 필요 없음
java.util
패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스 이용 가능
데이터(자료)를 메모리에서 구조적으로 처리하는 방법론이다.
C언어나 게임의 경우 일일히 구현해야 하지만 자바는 콜렉션으로 제공해준다
한 번 크기를 지정하면 변경할 수 없다.
배열에 기록된 데이터에 대한 중간 위치의 추가, 삭제가 불편하다.
한 타입의 데이터만 저장 가능하다.
저장하는 크기의 제약이 없다.
추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다.
add()
remove()
등여러 타입의 데이터가 저장 가능하다.
→ 기본 자료형은 불가능
Boolean
Character
Byte
Short
Integer
Long
Float
Double
Integer.parseInt("10"); // 문자열 "10"을 정수형 10으로 변경 Double.parseDouble("13.45"); // 문자열 13.45를 실수형 13.45로 변경
배열과 컬렉션의 차이점
- 배열은 크기를 지정해야 하고, 한 번 지정된 크기 변경 불가하지만 컬렉션은 크기에 제약이 없다.
- 배열은 중간에 값을 추가, 삭제, 정렬할 때 개발자가 직접 코드로 로직을 짜야한다.
하지만 컬렉션에선 이미 자료구조적 알고리즘이 내장되어 있다.
호출만으로 데이터를 효율적, 구조적 관리 가능하다.
- 배열은 한가지 타입의 여러개 데이터를 보관할 수 있다면, 컬렉션은 별도의 제네릭 설정을 하지 않을 경우 여러 타입의 여러개 데이터 보관 가능하다.
List, Set, Map은 인터페이스임
인터페이스 ( == 접점 )
관련 없는 것들을 연결
공통된 메서드명 제공해서 규약을 만듦
Java Collection : 자바의 자료구조 모음
(List, Set, Map)
아래 표의 Collection은 List, Set의 중복 코드를 뽑아서 만든 인터페이스 Collection임
→
add()
remove()
등
- Map엔
put()
이라는 애가 있음 (차이)
자료들을 순차적으로 나열한 자료구조로 인덱스로 관리되며, 중복해서 객체 저장 가능
구현 클래스로 ArrayList와 Vector, LinkedList가 있음
List의 후손으로 초기 저장 용량은 10으로 자동 설정되며 따로 지정도 가능
저장 용량을 초과한 객체들이 들어오면 자동으로 늘어나며 고정도 가능
동기화(Synchronized)를 제공하지 않음
→ Vector, LinkedList는 제공함
예) List list = new ArrayList();
* 동기화 : 하나의 자원(데이터)에 대해 여러 스레드가 접근 하려 할 때 한 시점에서 하나의 스레드만 사용할 수 있도록 하는 것