개발 공부

Java Day15 : 컬렉션 프레임워크 본문

Java

Java Day15 : 컬렉션 프레임워크

hyecozy 2022. 1. 19. 17:31

Collection Framework

: 인터페이스들이므로 단독으로 못 쓰고 이 인터페이스를 구현하는 클래스를 만들어 객체로 이용

List, Map, Set 인터페이스를 기준으로 여러 구현체가 존재. + Stack, Queue 인터페이스도 존재한다.

➡️사용하는 이유: 다수의 Data를 다루는데 표준화된 클래스를 제공해주기 때문에 DataStructure을 직접 구현하지 않고 편하게 사용할 수 있기 때문에. / 배열과 다르게 객체를 보관하기 위한 공간을 미리 정하지 않아도 되므로, 상황에 따라 객체의 수를 동적으로 정할 수 있다. (프로그램의 공간적인 효율성 또한 높여줌)

 

자료구조
1. Stack = LIFO(Last In First Out) : 마지막에 들어간 게 첫 번째로 나옴 / new 키워드로 사용 가능
2. Queue = FIFO(First In First Out) : 첫 번째로 들어간 게 첫 번째로 나옴 / JDK 1.5부터 LinkedList에 new 키워드를 적용하여 사용 가능
3. List -> List라는 자료구조를 기반으로 만들어진 문법이 바로 배열
 - 자료들의 순서가 존재
 - 자료들의 중복 저장을 허용
 - List인터페이스를 구현한 클래스 : ArrayList, LinkedList
(1) ArrayList : 읽기 속도 빠름, 데이터 삽입 (공간이 있을 땐 빠르고 없을 땐 느림), 데이터 삭제 느림.
(2) LinkedList : 읽기 느림, 데이터 삽입 빠름, 데이터 삭제 빠름.
4. Set

대표적인 구현체로 HashSet이 존재한다.
value에 대해 중복값 저장을 허용하지 않는다.

5번 Map의 key-value 구조에서 key대신 value가 들어가 value를 key로 하는 자료구조일 뿐이다. 마찬가지로 순서를 보장하지 않음.

순서를 보장하기 위해서는 LinkedHashSet을 사용한다.

5. Map

대표적인 구현체로 HashMap이 존재한다. key-value의 구조로 이루어져 있으며 Map의 구체적인 내용은 DataStructure 부분의 hashtable과 일치한다. key를 기준으로 중복된 값을 저장하지 않으며 순서를 보장하지 않는다.

key에 대해 순서를 보장하기 위해서는 LinkedHashMap을 이용한다.

'Java' 카테고리의 다른 글

Java 람다  (0) 2022.07.28
옵셔널(Optional) : null 체크 (수정 중)  (0) 2022.05.18
제네릭, Comparable 인터페이스  (0) 2022.05.15
Java Day14 : 예외 처리, Wrapper 클래스  (0) 2022.01.18
Java Day 03 : 반복문 (while, for)  (0) 2021.12.31
Comments