Java Tuning 이야기

Reading time ~1 minute

Map, Set, List, Queue 의 차이점

우선 자바에서 사용할 수 있는 Collection과 Map의 구성도를 보자. 매번 봤지만 자꾸 까먹고 뭐가 있는지 자세히 모르니까..

Java Collection, Map 클래스 구성도

  • Map

Map

  • Collection

Collection

출처 : https://dzone.com/articles/an-introduction-to-the-java-collections-framework

  1. Map : Key와 Value의 쌍으로 묶여서 저장되는 자료구조로 중복된 Key를 허용하지 않아!
    • Hashtable : 데이터를 해쉬테이블에 담아준다. 동기화 O
    • HashMap : 해쉬테이블이랑 비슷한데 null 허용 안하구 동기화 X
    • TreeMap : red-black에 담는데 Key로 순서를 정함
    • LinkedHashMap : 그냥 해쉬맵이랑 비슷한데 Doubly Linkedlist를 사용한다.
  2. Set : 중복을 허용하지 않는 집합을 처리하는 자료구조
    • HashSet : key를 해쉬로 저장
    • TreeSet : red-black 트리에 저장해서 동시에 정렬, 정렬때문에 느려
    • LinkedSet : 해쉬로 담는데 순서있게.
  3. List : 순서가 있는 집합을 처리하기 위한 자료구조로 중복을 허용한다.
    • Vector : 배열인데 크기를 지정할 필요 없음 동기화 O
    • ArrayList : 벡터랑 비슷한데 동기화 X
    • LinkedList : 배열이랑 비슷한데 Queue를 구현함. 그래서 FIFO
  4. Queue : 여러 개의 객체를 처리하기 전에 담아서 처리할 때 사용하기 위한 자료구조, FIFO
    • PriorityQueue : 추가된 순서 상관없이 먼저 생성된게 먼저나온다..? 그냥 우선순위가지는 큐!
    • LinkedBlockingQueue : 크기를 정할 수 있는, 링크드를 사용하는 큐
    • ArrayBlockingQueue : 크기가 정해져 있는! 큐
    • PriorityBlockingQueue : 크기 안 정해져 있고 우선순위 가지는 큐
    • DelayQueue : 대기하는 시간을 지정할 수 있는 큐
    • SynchronousQueue : 동기화 O

Dooray!

Dooray CalDav, IMAP 사용법 Continue reading

Vue.js

Published on February 10, 2018

Java_tuning5

Published on March 06, 2017