자바/Collections Framework

컬렉션 프레임웍(collections framework) - list,set,map

은은하게미친자 2022. 8. 9. 22:57
728x90

컬렉션 프레임웍?

데이터군을 저장하는 클래스들을 표준화한 설계, 종류는 3가지 타입으로 Colelction인터페이스로 정의되는 

List와 Set, Map인터페이스로 정의 되는 Map이 있다.

인터페이스 특징
List 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. 
ex -대기자명단
구현클래스 : ArrayList, LinkedList, Stack, Vector 등
Set 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.
ex- 양의정수집합, 소수의집합
구현클래스 : HashSet, TreeSet 등
Map key와 value의 쌍으로 이루어진 데이터의 집합
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
ex-우편번호, 지역번호
구현클래스 : HashMap, TreeMap, Hashtable, Properties 등

+ vector, stack, hashtable, properties와 같은 클래스들은 컬렉션 프레임웍이 만들어지기 전부터 존재 하던 것이 땜문에 컬렉션 프레임웍의 명명법을 따르지 않는다.

+ vetor나 hashtable보다는 arraylist와 hashmap을 사용하기를 추천.

 

+ ArrayList를 생성할때 저장할 요소의 개수를 고려해서 실제 저장할 개수보다 약간 여유있는 크기로 하는게 좋음. 지정한 크기보다 더많은 객체를 저장하면 자동으로 크기가 늘어나기는 하지만 처리시간이 많이 소요 되기 때문.

 

+ ArrayList/ LinkedList 비교

  ArrayList LinkedList
읽기(접근시간) 빠르다 느리다
추가/삭제 느리다 빠르다
비고 순차적인 추가삭제는 더 빠름
비효율적인 메모리사용
데이터가 많을 수록 접근성이 떨어짐
  스택(stack) 구현에 적합 큐(queue) 구현에 적합

 

728x90