자바/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