본문 바로가기

Archived(CSE Programming)/Java

Java 컬렉션(Collection)

https://gangnam-americano.tistory.com/41

자바의 Collection은 대표적으로 List, Set, Map(위에서는 상속하고있지만 Collection으로 분류) 이렇게 제시한다.

 

1. List 

List는 순서를 보장하는 데이터들의 집합(중복 허용).

 

1) Vector

동기화 처리가 보장되는 동적 Array로, 동기화 처리에 따른 성능이 떨어지기에 잘 사용하지 않는다.

 

2) ArrayList 

Array와 같은 구조로 이루어져 삽입/삭제 시에 Array의 복사로 처리한다.

그래서 중간 삽입이나 많은 삽입삭제 과정에 있어 성능이 저하된다.

그렇지만 Index를 통해 임의 접근은 성능이 우수하다. 

 

3) LinkedList

다음 자료의 위치 정보를 통해 이어져있는 List이다. 삽입/삭제 시에 위치 정보만 수정하면 된다.

따라서 삽입/삭제가 많은 자료 처리에 성능이 우수하다.

그렇지만 Index의 개념이 없기에 순차 접근만이 가능하여 임의 접근에 있어 성능이 떨어진다.

2. Set

Set은 순서를 유지하지 않는 데이터들의 집합(중복 허용x).

1) HashSet : Hash의 접근 방법을 통해 성능이 빠름. 단, 순서를 알 수 없음

2) LinkedHashSet : 추가된 순서대로 접근 가능

3) TreeSet : 정렬방법을 지정할 수 있음

3. Map

키(Key)와 값(Value)의 쌍으로 이루어진 데이터 집합

순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.

1) HashMap : 중복 X, 순서 X, null O(key값)

2) HashTable : HashMap보다 느리지만 동기화 지원, null X

3) TreeMap : 정렬된 순서대로 저장되어 검색은 빠르지만,  추가/삭제시 성능이 떨어진다.

 

참고 : https://jeong-pro.tistory.com/87

 

JAVA 컬렉션 (Vector, ArrayList, LinkedList, Set, Map)

자바 컬렉션(Java Collections) JAVA에서 대용량의 데이터를 추가/삭제하면서 처리가 필요할 때 자바 컬렉션을 사용한다. Vector : java 1.0부터 이어져온 List객체, ArrayList가 상위호환(?)이라 잘 안쓴다. 특히..

jeong-pro.tistory.com

 

'Archived(CSE Programming) > Java' 카테고리의 다른 글

Java_메모리 구조  (0) 2019.11.03
Java 예외처리  (0) 2019.11.03
Java 추상클래스, 인터페이스  (0) 2019.11.03
Java 오버로딩과 오버라이딩  (0) 2019.11.02
Java 멤버 변수, 접근제어자  (0) 2019.11.02