java/ㄴ CHAPTER 11. 컬렉션 프레임워크

CHAPTER 11. (7) 동기화란? ( ★★★ 각 Collection 차이 포함)

Astaroth아스 2020. 4. 23. 15:04


Arrays, Collections 란?
 - Arrays : 배열과 관련된 메서드 제공
 - Collections : 컬렉션과 관련된 메서드 제공
  ㄴ 공통 : fill(), copy(), sort(), binarySearch()


Collections, Collection 차이?
 - Collections는 클래스
 - Collection은 인터페이스



동기화
 - 멀티쓰레드 프로그래밍 환경
  ㄴ 1. 하나의 객체를 여러 쓰레드가 동시 접근 가능
  ㄴ 2. 데이터 무결성 유지 위해 동기화 필요

 

 



Vector (ArrayList), HashTable (HashMap) 차이?
 - Vector, HashTable은 자체적으로 동기화 처리 가능 (but 멀티쓰레드 프로그래밍 아닌 경우 불필요한 기능 => 성능 감소의 요인)
 - 새로 ArrayList, HashMap 추가로 동기화 자체 처리 X (필요한 경우에만 java.util.Collections 클래스의 동기화 메서드 이용)



총합 정리
 - ArrayList : 배열 기반, 데이터 추가/삭제 불리, but 순차적 추가/삭제 가장 빠름, 임의 요소에 대한 접근성 뛰어남
 - LinkedList : 연결 기반, 데이터 추가/삭제 유리, 임의 요소에 대한 접근성 나쁨
 - HashMap : 배열 + 연결, 추가/삭제, 검색, 접근성 모두 뛰어남, 특히 검색에 최고 성능 (키 하나만 알면 되니까)
 - TreeMap : 연결 기반, 정렬, 검색에 적합, 검색 성능은 HashMap보다 떨어짐 (HashMap은 키 하나만 알면 되니깐)

 ㄴ 구현
 - Stack : Vector를 상속받아 구현
 - Queue : LinkedList가 Queue인터페이스를 구현
 - Properties : HashTable을 상속받아 구현
 - HashSet : HashMap을 이용해서 구현
 - TreeSet : TreeMap을 이용해서 구현

LinkedHashMap(Set) : 기존 HashMap(Set)에 저장순서 유지 기능 추가