[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 6주차
6주차 학습내용
자료구조
제네릭
컬렉션과 맵
자료구조
데이터를 효과적으로 저장하고 사용하기 위한 여러 가지 방법이 있다.
이러한 방법들을 정리한 것이 자료구조이며 데이터의 사용 방식에 따라 정의된다.
배열: 메모리 공간에 연속적으로 배치하여 관리한다. 물리적, 논리적 위치가 같으므로 접근이 빠르다.
연속적인 배치 구조로 내부가 변경된다면 요소들을 재배치하는 과정이 필요하므로 내부가 변경된다면 비효율적이다.
연결 리스트: 자료들을 연결된 형태로 배치한 것이다. 한쪽의 자료가 다른 쪽의 참조 위치를 알고 있다. 양쪽을 연결할 수도 있다.
배열과는 다르게 내부가 변경되어도 좌우 참조값을 변경해주면 되기 때문에 변경에 유리하다.
스택: FILO 구조로 쌓듯이 저장하는 자료구조이다.
큐: FIFO 구조로 먼저 들어간 자료가 먼저 나오는 구조이다.
트리: 부모와 자식으로 이루어진 자료구조이다. 보통 이진트리로 사용한다.
이진 검색 트리: 부모 노드보다 작다면 왼쪽 자식으로, 부모 노드보다 크다면 오른쪽 자식으로 배치하여 검색에 효과적인 자료구조이다.
그래프: 정점과 간선의 형태로 이루어진 자료구조이다. 간선의 방향이 있다면, 방향 그래프이다.
해싱: 검색을 효과적으로 하기 위한 자료구조이다. 기본적으로 배열과 같은 논리로, key의 해시 함수 결과로 bucket에 저장된
value를 알 수 있으므로 시간 복잡도를 줄일 수 있다.
제네릭
제네릭: 클래스 내부에서 사용하는 자료형을 미리 정의해두지 않고, 자료형의 변경에 유리하도록 하는 기능
부모가 될 Animal 클래스
Animal의 구현체인 Dog
Animal의 구현체인 Cat
위에서 정의한 구현체를 클래스 내부 자료형으로 사용할 UseClass
(T extends Animal을 사용하면 Animal을 상속받은 클래스만 자료형으로 사용하도록 범위를 줄일 수 있다.)
최종적으로 제네릭을 사용한 Main 클래스
컬렉션과 맵
Collection - List, Set을 이용하도록 정의해둔 인터페이스
구현체 - ArrayList, LinkedList, HashSet, TreeSet..
List - 순서가 있고, 중복을 허용한다.
Set - 순서가 없고, 중복을 허용하지 않는다.
Map - Map을 이용할 수 있도록 정의해둔 인터페이스
구현체 - HashMap, TreeMap
Map - Key-Value 쌍으로 정의된 자료구조, Key는 중복을 허용하지 않는다.
'툴 > 강의' 카테고리의 다른 글
[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 8주차 (0) | 2022.05.11 |
---|---|
[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 7주차 - 객체지향, 디자인 패턴 (0) | 2022.05.04 |
[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 5주차 (0) | 2022.04.21 |
[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 4주차 (0) | 2022.04.13 |
[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 3주차 (0) | 2022.04.07 |