반응형

[학습일지] 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는 중복을 허용하지 않는다.

 

 

 


 

반응형

+ Recent posts