Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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 31
Archives
Today
Total
관리 메뉴

Super Coding Addict

Ch11. 컬렉션 프레임워크 (1) 본문

JAVA 문법

Ch11. 컬렉션 프레임워크 (1)

밍응애 2021. 2. 21. 23:03

< 컬렉션 프레임워크란? >

* 컬렉션 프레임 워크

- 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해놓은 라이브러리

- java.util 패키지에 구현되어 있음

- 이를 사용하여 개발에 소요되는 시간을 절약하고 최적화된 라이브러리 사용 가능

- Collection인터페이스와 Map인터페이스로 구성됨

 

* Collection 인터페이스

- 하나의 객체에 대한 자료구조 cf. map : key-value pair(쌍)로 이루어져 있는 객체를 관리

- 하위에 List, Set 인터페이스가있다

 

 

* Map 인터페이스

- 쌍(pair)으로 이루어진 객체를 관리하는 데 필요한 여러 메서드가 선언되어 있음

- key-value 쌍으로 이루어져 있으며, key는 중복될 수 없음


* 배열(Array) vs. Linked List

- 배열

: 연속된 선형 자료구조

: 논리적 구조 = 물리적 구조

: 물리적으로 따닥따닥 붙어있기 때문에, i번째에 있는 값을 찾을 때 빠르다

: 중간에 값을 지우면 뒤에서 값을 한칸씩 앞으로 땡겨야하기 때문에 시간이 걸린다

: Fixed Length를 가지므로 정해진 길이를 초과해 값을 추가하려면 Length를 뻥튀기한 배열을 만든 후 Copy해야 함

: JDK에는 ArrayList나 Vector가 있다

 

- Linked List

: 논리적으로는 선형이지만, 물리적으로는 메모리가 동떨어져 있다

: 동적메모리가 허용하는 한 계속 이어서 쓸 수 있다

: 중간에 값을 지우게 되면 메모리는 지우고 링크만 조정해주면 되기 때문에 시간이 오래 걸리지 않는다

--> 자료변동이 자주 일어날 때 쓰면 좋다

: JDK에는 LinkedList가 있다

 

* Stack vs. Queue

- Stack

: LIFO(Last In First Out)

: 아래에서 점차 차곡차곡 쌓아가는 구조로 제일 위를 top이라고 함

: 자료를 넣는 것을 push(), 빼는 것을 pop()

 

- Queue

: FIFO(First In First Out)

: 자료를 빼는 쪽이 Front, 자료를 넣는 쪽이 Rear

: 자료를 넣는 것을 enqueue(), 자료를 빼는 것을 dequeue()

 

* Hash

- 검색을 위한 자료구조로 검색속도가 빠르다

- index(위치) = hash(key), 이 때 key는 중복 X

- 꽉차게 쓰지 않고 75%정도 차면 뻥튀기를 한다

- hashtable, hashmap 등이 있다

 

* Binary Tree

- Child가 2개 이하

- ex) Binary Search Tree

--> 데이터 중복은 X

--> 분기점에서 비교를 해서 자기자신보다 작은 값은 왼쪽에, 큰 값은 오른쪽에....

'JAVA 문법' 카테고리의 다른 글

Ch11. 컬렉션 프레임워크 (3)  (0) 2021.02.22
Ch11. 컬렉션 프레임워크 (2)  (0) 2021.02.22
Ch14. 자바 입출력(8) - 직접 코딩해보기  (0) 2021.02.21
Ch14. 자바 입출력(7)  (0) 2021.02.21
Ch14. 자바 입출력(6)  (0) 2021.02.20