일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 오늘도
- 기술면접
- CS
- 개발자기술면접
- 운영체제
- 스프링부트
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 자바스크립트
- 내가해냄
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2장
- jpa
- Flexbox
- 어찌저찌해냄
- 테스트코드
- 트랜지스터
- 스프링부트 테스트코드
- 스프링부트와 AWS로 혼자 구현하는 웹 서비스
- AWS EC2 구현
- 그래도일단
- 스프링부트와 AWS로 혼자 구현하는 웹서비스
- Today
- Total
개발 공부
Java Day15 : 컬렉션 프레임워크 본문
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 |