[자바성능튜닝이야기] 04 어디에 담아야 하는지...

이 글은 아직 작성 중이며 완성 되지 않은 상태입니다.
자바 성능 튜닝 이야기(04 어디에 담아야 하는지…)을 읽고 공부하여 정리한 내용입니다.


목차

Collection 및 Map 인터페이스의 이해

Collection 인터페이스

이미지 준비중

  • Collection : 상위 인터페이스
  • Set : 중복을 허용하지 않는 집합을 처리하기 위한 인터페이스
  • SortedSet : 오름차순을 갖는 Set 인터페이스
  • List : 순서가 있는 집합을 처리하기 위한 인터페이스
    중복을 허용하며 인덱스가 있어 위치를 지정하여 값을 찾을 수 있다.
  • Queue : FIFO(First In First Out, 선입선출) 형태로 자료를 관리하는 인터페이스

Map 인터페이스

이미지 준비중

  • Map : Map은 key와 value의 쌍으로 구성된 객체의 잡합을 처리하기 위한 인터페이스
    중복되는 키를 허용하지않는다.
  • SortedMap : 키를 오름차순으로 정렬하는 Map 인터페이스

Set 관련 클래스

Set 인터페이스는 중복이 없는 집합 객체를 만들 때 유용하다.

Set 인터페이스를 구현한 클래스로는 HashSet, TreeSet, LinkedHashSet 세가지가 있다.
이미지 준비중

class desc
HashSet 데이터를 해쉬 테이블에 담는 클래스로 순서 없이 저장
TreeSet red-black이라는 트리에 데이터를 담는 클래스로 값에 따라서 순서가 정해진다.
데이터를 담으면서 동시에 정렬하기 때문에 HashSet보다 성능상 느리다.
LinkedHashSet 헤쉬 테이블에 데이터를 담는데, 저장된 순서에 따라서 순서가 결정된다.

List 관련 클래스

List 인터페이스를 구현한 클래스들은 담을 수 있는 크기가 자동으로 증가되므로, 데이터의 개수를 확실히 모를 때 유용하다.

List 인터페이스를 구현한 클래스로는 vector, ArrayList, LinkedList 세가지가 있다.
이미지 준비중

class desc
vector 객체 생성시에 크기를 지정할 필요가 없는 배열 클래스
ArrayList Vector
LinkedList

Queue 관련 클래스

Map 관련 클래스


Collection 관련 클래스의 동기화


참고

Share