본문 바로가기
Java

[자바] Collections 자료구조

by Sky Titan 2020. 9. 15.
728x90

Collections

  • java.util 패키지에 포함된 자료구조 담당 프레임워크
  • 여러 개의 객체를 보관할 수 있게 만들어진 클래스들의 모음
  • 해당 클래스들은 Container 클래스라고 불리기도 함

자료구조

특징

리스트(List)

- 데이터 순서 O, 데이터 중복 O

- INDEX 번호가 중요

큐 (Queue)

- List와 유사

- 자료구조 큐 형태 구현(선입선출)

세트(Set)

- 데이터 순서 X, 데이터 중복 X

맵(Map)

- 키(Key), 값(Value) 쌍을 가지는 구조

- 키 값으로 원하는 데이터 검색

- 데이터 순서 X, 키 중복 X, 값 중복 O

1. 리스트 (List) 인터페이스

클래스

특징

ArrayList

- 단방향 포인터 구조

- 순차적 접근에 빠른 성능을 가짐

LinkedList

- 양방향 포인터 구조

- 빈번한 데이터 삽입, 삭제에 빠른 성능을 가짐

Vector

- ArrayList와 동작 방식 같음

- 속도가 느림

- 멀티스레드에 대해서 좀 더 안전

- 잘 쓰이지 않음

  • 인덱스 존재
  • 데이터 순서 O, 데이터 중복 O
  • ArrayList, LinkedList, Vector 셋 다 List interface를 구현
  • List타입으로 객체 생성 가능
  • ex) ArrayList<Integer> list = new ArrayList<>();

2. 세트 (Set) 인터페이스

클래스

특징

HashSet

- 해싱 알고리즘으로 원하는 객체를 빨리 찾음

- 제일 많이 쓰임

TreeSet

- SortedSet

- 데이터가 추가될 때 내부적으로 위치가 정해짐 (자동으로 정렬이됨)

  • 집합을 의미
  • 데이터 순서 X, 데이터 중복 X
  • HashSet<값타입>
  • ex) HashSet<Integer> set = new HashSet<>();

3. 맵 (Map) 인터페이스

클래스

특징

HashMap

- 해싱 알고리즘으로 원하는 객체를 빨리 찾음

- 제일 많이 쓰임

TreeMap

- SortedMap

- 데이터가 추가될 때 내부적으로 위치가 정해짐 (자동으로 정렬이됨)

  • 키(Key), 값(Value) 쌍
  • 키 중복 X, 값 중복 O
  • 키로 원하는 데이터를 찾음
  • HashMap<키 타입, 값 타입>
  • ex) HashMap<String, Integer> map = new HashMap<>();

4. 큐 (Queue) 인터페이스

  • 자료구조 큐의 선입선출 구조를 구현
  • LinkedList 클래스가 Queue 인터페이스를 구현하기 때문에 보통 LinkedList로 객체를 선언해서 사용
  • ex) Queue<Integer> queue= new LinkedList<>();
728x90

'Java' 카테고리의 다른 글

[자바] 직렬화 (Serialize)  (0) 2020.10.20
[자바] hashCode()  (0) 2020.09.17
[자바] 자바의 실행구조  (0) 2020.09.15
[자바] 인터페이스 (Interface)  (0) 2020.09.15
[자바] JRE, JDK  (0) 2020.09.15

댓글