[자바 인강] 4주차 학습일지
5. 여러가지 자료구조
자료구조
효율적인 자료구조 -> 프로그램 수행속도 상향, 성능 좋은 알고리즘
- 선형 자료구조
배열 - 정해진 메모리를 할당받음
연결리스트 - 자료가 추가될 때마다 메모리 할당, 자료는 링크로 연결됨
스택 - LIFO(후입선출) push - pop
큐 - FIFO(선입선출) enqueue - dequeue
- 비선형 자료구조
트리(Tree)
힙(heap) - 우선 큐를 구현
이진트리(binary tree) - 부모노드에 자식노드가 두개 이하
이진 검색 트리(Binary Search Tree) - 자료(key)의 중복을 허용 X
왼쪽 자식 노드 < 부모노드 < 오른쪽 자식 노드
그래프(Graph)
그래프 구현 방법 :
인접 행렬(adjacency matrix)
인접 리스트(adjacency list)
그래프 탐색 방법 :
BFS(bread first search)
DFS(depth first search)
해싱(Hashing)
검색을 위한 자료 구조
키(key) 사전(dictionary)
제네릭 프로그래밍
클래스에서 사용하는 변수의 자료형이 여러 개일 수 있음
-> 자료형을 특정하지 않고 사용할 때 지정 할 수 있도록 선언
<T extends 클래스>
자료형의 범위를 제한 할 수 있음
제네릭 메서드 활용
public <자료형 매개 변수> 반환형 메서드 이름(자료형 매개변수.....) {
}
컬렉션 프레임워크
자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리
List
- ArrayList, Vector, LinkedList, Stack, Queue ...
- 중복 허용
Set
- HashSet, TreeSet ...
- 중복 허용 X, 순서 상관 X
Map
- HashTable, HashMap, TreeMap ...
- 객체는 key-value 쌍으로 이루어짐
- key 중복 X
Collection 요소를 순회하는 Iterator
순서가 있는 List인터페이스의 경우 -> get(i)메서드 활용
Set 인터페이스의 경우 -> Iterator 활용
- hasNext() : 다음 요소가 있을 경우 true 반환
- next() : 다음에 있는 요소 반환
TreeSet 클래스 활용
- comparable 오류 발생
public class Member implements Comparable<Member>{
...
@Override
public int compareTo(Member member) {
//return (this.memberId - member.memberId); //asc
return (this.memberId - member.memberId) * (-1); //desc
}
}
Author And Source
이 문제에 관하여([자바 인강] 4주차 학습일지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@devyeon/자바-인강-4주차-학습일지저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)