소프트웨어공학

Java_소스코드_자료구조형 클래스의 상속구조, list, map, set, collection

스윙스윙 2021. 11. 3. 20:36

▣ Java_소스코드_자료구조형 클래스의 상속구조, list, map, set, collection

 

 

Class Base Class Base Interface 중복 순서 정렬 Thread-safe
ArrayList AbstractList List Yes Yes No No
LinkedList AbstractSequentialList List;Deque Yes Yes No No
Vector AbstractList List Yes Yes No Yes
HashSet AbstractSet Set No No No No
LinkedHashSet HashSet Set No Yes No No
TreeSet AbstractSet Set;NavigableSet;SortedSet No Yes Yes No
HashMap AbstractMap Map No No No No
LinkedHashMap HashMap Map No Yes No No
Hashtable Dictionary Map No No No Yes
TreeMap AbstractMap Map;NavigableMap;SortedMap No Yes Yes No

 

■ Map 인터페이스를 구현하는 HashTable, HashSet, Linked-HashSet, TreeSet의 비교

  HashTable HashMap LinkedHashMap TreeMap
내부로직 Hashing Hashing Hashing 이진 탐색 트리
동기화  Thread safe Not Thread safe Not Thread safe Not Thread safe
정렬 순서 유지되지 않음 유지되지 않음 삽입순서 유지 Comporator가 정의되지 않을 경우 오름차순에 의해 자동 정렬.
성능 동기화되므로 해쉬맵보다 약간 느리다 가장 좋음 삽입순서를 유지하기 위하여 포인터값을 저장하므로 HashMap 보다 약간 느리다. 삽입과 삭제 오퍼레이션 후 재정렬해야하므로 가장 느리다
Null Value 허용하지 않음 Key값으로 최대 한 개의 Null 허용, V값으로 복수의 Null 허용  Key값으로 최대 한 개의 Null 허용, V값으로 복수의 Null 허용  허용하지 않음
사용 용도 쓰레드 세이프티가 요구될 때 사용한다 가장 좋은 퍼포먼스를 보이므로, 일반적으로 권장된다 삽입순서를 유지하고 싶다면 선택 Comparator에 의해 원소들을 정렬하고 싶다면 선택

 

 

 


 

2019년 46번

정답 : 3번

instanceof  연산자 결과

HashSet Set의 하위 클래스이므로 Set을 1 증가 시킴
Collection의 하위 클래스이므로 Collection 을 1증가 시킴
HashMap Map의 하위 클래스이므로 Map을 1증가 시킴
ArrayList List의 하위 클래스이므로 List을 1증가 시킴
Collection의 하위 클래스이므로 Collection을 1증가 시킴
LinkedList List의 하위 클래스이므로 List을 1증가 시킴
Collection의 하위 클래스이므로 Collection을 1증가 시킴
Stack List의 하위 클래스이므로 List을 1증가 시킴
Collection의 하위 클래스이므로 Collection을 1증가 시킴
TreeSet Set의 하위 클래스이므로 Set을 1증가 시킴
Collection의 하위 클래스이므로 Collection을 1증가 시킴
TreeMap Map의 하위 클래스이므로 Map을 1증가 시킴

list = 3, map = 2, set = 2, collection = 5