[JAVA] 컬렉션, 자료 구조, 배열의 문제점

 

 

<컬렉션(Collection)>

- 메모리상에서 자료를 구조적으로(ex.배열) 처리하는 방법을 자료구조라 일컫는데

컬렉션은 자바에서 제공하는 자료구조 모음 (List, Set, Map)

 

- java.util 패키지에 포함되며, 인터페이스를 통해 정형화된 방법으로 다양한 컬렉션 클래스 이용 가능

 

 

<자료 구조>

 

- 데이터(자료)를 메모리에서 구조적으로 처리하는 방법론이다

 

 

 

<배열의 문제점 & 컬렉션의 장점>

 

1) 배열의 문제점

 

(1) 한 번 크기를 지정하면 변경할 수 없다

- 공간 크기가 부족하면 에러가 발생 -> 할당 시 넉넉한 크기로 할당하게 됨 (메모리 낭비)

- 필요에 따라 공간을 늘리거나 줄일 수 없음

 

(2) 배열에 기록된 데이터에 대한 중간 위치의 추가, 삭제가 불편하다

- 추가, 삭제할 데이터부터 마지막 기록된 데이터까지 하나씩 뒤로 밀어내고 추가해야 함 (복잡한 알고리즘)

 

(3) 한 타입의 데이터만 저장 가능하다

 

 

2) 컬렉션의 장점

 

(1) 저장하는 크기의 제약이 없다

 

(2) 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다

- 자료를 구조적으로 처리하는 자료구조가 내 장되어 있어 알고리즘 구현이 필요 없음

 

(3) 여러 타입의 데이터가 저장 가능하다

- 객체만 저장할 수 있기 때문에 필요에 따라 기본 자료형을 저장해야 하는 경우 Wrapper클래스 사용

 

 

3) 컬렉션의 주요 인터페이스

 

- (접점) 관련 없는 것들 연결

- 공통된 메소드명을 제공하여 규약을 만듦

 

 


(1) Collection 인터페이스

- List, Set의 공통 코드를 작성한 단순한 부모 인터페이스

 

(2) Java Collection

- 자바의 자료 구조 모음 (List, Set, Map)