์๋ฃ๊ตฌ์กฐ์๋ ํฌ๊ฒ ์ ํ์๋ฃ๊ตฌ์กฐ์ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ์์ผ๋ฉฐ ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค์ ๊ฐ๋ตํ ์ค๋ช ์ด๋ค.
๊ฐ ์๋ฃ๊ตฌ์กฐ์ ์์ธํ ์ค๋ช ์ ํด๋น ๋ธ๋ก๊ทธ ๋ค๋ฅธ๊ธ์ ์์ ๋์ด์๋ค.
๐ซ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ ๋ชจ์
1. ๋ฐฐ์ด(Array)
- ์ค๋ช : ๋์ผํ ํ์ ์ ์์๋ค์ด ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ํน์ง: ์ธ๋ฑ์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅ, ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์.
- ์ฌ์ฉ ์: ์ ์ ๋ฐฐ์ด, ๋ฌธ์ ๋ฐฐ์ด ๋ฑ.
2. ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List)
- ์ค๋ช : ๊ฐ ์์๊ฐ ๋ ธ๋๋ก ๊ตฌ์ฑ๋๊ณ , ๊ฐ ๋ ธ๋๋ ๋ฐ์ดํฐ์ ๋ค์ ๋ ธ๋์ ๋ํ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋๋ค.
- ํน์ง: ๋์ ํฌ๊ธฐ, ์์ ์ฝ์ /์ญ์ ๊ฐ ์ฉ์ดํจ, ์์ ์ ๊ทผ์ด ๋นํจ์จ์ .
- ์ฌ์ฉ ์: ๋ฆฌ์คํธ, ํ, ์คํ ๊ตฌํ.
3. ์คํ(Stack)
- ์ค๋ช : ํ์ ์ ์ถ(LIFO, Last In First Out) ์์น์ ๋ฐ๋ฅด๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ํน์ง: ์์ ์ถ๊ฐ/์ญ์ ๊ฐ O(1) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง, ์ฃผ๋ก ์ฌ๊ท์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ์ฌ์ฉ๋จ.
- ์ฌ์ฉ ์: ํจ์ ํธ์ถ ์คํ, ํ์ ํ๊ธฐ๋ฒ ๊ณ์ฐ๊ธฐ.
4. ํ(Queue)
- ์ค๋ช : ์ ์ ์ ์ถ(FIFO, First In First Out) ์์น์ ๋ฐ๋ฅด๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ํน์ง: ์์ ์ถ๊ฐ/์ญ์ ๊ฐ O(1) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง, ์์ฐจ์ ์ธ ์์ ์ฒ๋ฆฌ์ ์ ํฉ.
- ์ฌ์ฉ ์: ํ๋ฆฐํฐ ์์ ๋๊ธฐ์ด, ๋๋น ์ฐ์ ํ์(BFS).
5. ํด์ ํ ์ด๋ธ(Hash Table)
- ์ค๋ช : ํค-๊ฐ ์์ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ก, ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ์ธ๋ฑ์ค๋ก ๋ณํํด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ํน์ง: ํ๊ท ์ ์ผ๋ก O(1) ์๊ฐ๋ณต์ก๋๋ก ๋น ๋ฅธ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ ๊ฐ๋ฅ.
- ์ฌ์ฉ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค, ์บ์ ๊ตฌํ.
6. ํธ๋ฆฌ(Tree)
- ์ค๋ช : ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ ธ๋๊ฐ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋๋ค.
- ํน์ง: ๋ค์ํ ํธ๋ฆฌ ๊ตฌ์กฐ๊ฐ ์์ผ๋ฉฐ, ๋น ๋ฅธ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ ๊ฐ๋ฅ.
- ์ฌ์ฉ ์: ํ์ผ ์์คํ , ์ด์ง ํ์ ํธ๋ฆฌ(BST).
6.1. ์ด์ง ํธ๋ฆฌ(Binary Tree)
- ์ค๋ช : ๊ฐ ๋ ธ๋๊ฐ ์ต๋ ๋ ๊ฐ์ ์์์ ๊ฐ์ง ์ ์๋ ํธ๋ฆฌ์ ๋๋ค.
- ํน์ง: ๊ท ํ์ ๋ง์ถ๋ฉด ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ O(log n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง.
- ์ฌ์ฉ ์: ์ด์ง ํ์ ํธ๋ฆฌ, ํ.
6.2. ์ด์ง ํ์ ํธ๋ฆฌ(Binary Search Tree, BST)
- ์ค๋ช : ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก, ์ผ์ชฝ ์์์ ๋ถ๋ชจ๋ณด๋ค ์๊ณ , ์ค๋ฅธ์ชฝ ์์์ ๋ถ๋ชจ๋ณด๋ค ํฐ ํน์ฑ์ ๊ฐ์ง๋๋ค.
- ํน์ง: ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ๋ฅ.
- ์ฌ์ฉ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฒ์, ๋ฒ์ ๊ฒ์.
6.3. ํ(Heap)
- ์ค๋ช : ์์ ์ด์ง ํธ๋ฆฌ๋ก, ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ณด๋ค ํฌ๊ฑฐ๋(์ต๋ ํ), ์์์ผ(์ต์ ํ) ํฉ๋๋ค.
- ํน์ง: ์ฐ์ ์์ ํ ๊ตฌํ์ ์ฌ์ฉ, ์ต๋๊ฐ ๋๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์.
- ์ฌ์ฉ ์: ์ฐ์ ์์ ํ, ํ ์ ๋ ฌ.
7. ๊ทธ๋ํ(Graph)
- ์ค๋ช : ์ ์ (๋ ธ๋)๋ค๊ณผ ์ด๋ค์ ์ฐ๊ฒฐํ๋ ๊ฐ์ (์ฃ์ง)์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ํน์ง: ๋ฐฉํฅ ๊ทธ๋ํ, ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๋ฑ ๋ค์ํ ํํ๊ฐ ์์ผ๋ฉฐ, ๋ณต์กํ ๊ด๊ณ๋ฅผ ๋ํ๋ผ ์ ์์.
- ์ฌ์ฉ ์: ์์ ๋คํธ์ํฌ, ์ง๋ ๊ฒฝ๋ก ์ฐพ๊ธฐ.
8. ํธ๋ผ์ด(Trie)
- ์ค๋ช : ๋ฌธ์์ด์ ์ ์ฅํ๊ณ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๊ธฐ ์ํ ํธ๋ฆฌ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
- ํน์ง: ํค๊ฐ ๋ฌธ์์ด์ธ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์์.
- ์ฌ์ฉ ์: ์๋ ์์ฑ, ์ฌ์ ๊ตฌํ.
๐ซ์ด์ธ์ ๋ง์ด ์ฐ๋ ์๋ฃ๊ตฌ์กฐ ๋ชจ์
1. ๋ฑ(Deque)
- ์ค๋ช : ์์ชฝ ๋์์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ ํ์ ๋๋ค.
- ํน์ง: ์ด์ค ๋ ํ๋ก, ์๊ณผ ๋ค์์ O(1) ์๊ฐ๋ณต์ก๋๋ก ์ฝ์ /์ญ์ ๊ฐ ๊ฐ๋ฅ.
- ์ฌ์ฉ ์: ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์๊ณ ๋ฆฌ์ฆ, ํ์ ํ๋ ํ.
2. ์ฐ์ ์์ ํ(Priority Queue)
- ์ค๋ช : ๊ฐ ์์๊ฐ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ฉฐ, ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์์๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋ ํ์ ๋๋ค.
- ํน์ง: ํ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ์ฝ์ /์ญ์ ๊ฐ O(log n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง.
- ์ฌ์ฉ ์: ์์ ์ค์ผ์ค๋ง, ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ.
3. ์งํฉ(Set)
- ์ค๋ช : ์ค๋ณต๋์ง ์๋ ์์๋ค์ ์ปฌ๋ ์ ์ ๋๋ค.
- ํน์ง: ๋ณดํต ํด์ ํ ์ด๋ธ์ด๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋๋ฉฐ, ์์ ์ถ๊ฐ, ์ญ์ , ๊ฒ์์ด ํ๊ท ์ ์ผ๋ก O(1) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง.
- ์ฌ์ฉ ์: ์งํฉ ์ฐ์ฐ(ํฉ์งํฉ, ๊ต์งํฉ ๋ฑ), ๊ณ ์ ๊ฐ ์ ์ฅ.
4. ๋งต(Map) ๋๋ ์ฌ์ (Dictionary)
- ์ค๋ช : ํค-๊ฐ ์์ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ๋ก, ๊ฐ ํค๋ ์ ์ผํด์ผ ํฉ๋๋ค.
- ํน์ง: ๋ณดํต ํด์ ํ ์ด๋ธ์ด๋ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋๋ฉฐ, ํค๋ฅผ ์ด์ฉํ ๋น ๋ฅธ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ ๊ฐ๋ฅ.
- ์ฌ์ฉ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค, ์บ์, ํค-๊ฐ ์ ์ฅ์.
5. ๊ทธ๋ํ(Graph)์ ํน์ ํํ
5.1. ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG, Directed Acyclic Graph)
- ์ค๋ช : ๋ฐฉํฅ์ฑ์ด ์์ผ๋ฉฐ ์ํ์ด ์๋ ๊ทธ๋ํ์ ๋๋ค.
- ํน์ง: ์์ ์ ๋ ฌ์ด ๊ฐ๋ฅ, ์ข ์์ฑ ๊ด๋ฆฌ์ ์ ์ฉ.
- ์ฌ์ฉ ์: ์์ ์ค์ผ์ค๋ง, ์ปดํ์ผ๋ฌ ์ต์ ํ.
5.2. ๊ฐ์ค์น ๊ทธ๋ํ(Weighted Graph)
- ์ค๋ช : ๊ฐ ๊ฐ์ ์ด ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ทธ๋ํ์ ๋๋ค.
- ํน์ง: ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ.
- ์ฌ์ฉ ์: ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ, ์ต์ ์ ์ฅ ํธ๋ฆฌ.
6. B-ํธ๋ฆฌ ๋ฐ ๋ณํ
6.1. B-ํธ๋ฆฌ(B-Tree)
- ์ค๋ช : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ์ผ ์์คํ ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ์ ์ผ๋ฐํ์ ๋๋ค.
- ํน์ง: ๋ ธ๋ ํ๋์ ์ฌ๋ฌ ํค๋ฅผ ์ ์ฅ, ๋์ด๊ฐ ๋ฎ์ ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ ํจ์จ์ .
- ์ฌ์ฉ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค, ํ์ผ ์์คํ .
6.2. B+ํธ๋ฆฌ(B+ Tree)
- ์ค๋ช : B-ํธ๋ฆฌ์ ๋ณํ์ผ๋ก, ๋ฆฌํ ๋ ธ๋๊ฐ ๋งํฌ๋ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
- ํน์ง: ๋ฒ์ ์ฟผ๋ฆฌ ์ํ์ ํจ์จ์ .
- ์ฌ์ฉ ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค.
7. ํผ๋ณด๋์น ํ(Fibonacci Heap)
- ์ค๋ช : ๋ณต์กํ ์ฐ์ ์์ ํ ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ์ํํ๋ ํ์ ๋๋ค.
- ํน์ง: ์ฝ์ ๊ณผ ํค ๊ฐ์๊ฐ ๋งค์ฐ ๋น ๋ฆ, ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์์ ์ฌ์ฉ.
- ์ฌ์ฉ ์: ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ์์์ ์ต๋จ ๊ฒฝ๋ก ๊ณ์ฐ.
8. AVL ํธ๋ฆฌ
- ์ค๋ช : ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ก, ๊ฐ ๋ ธ๋์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ๋์ด ์ฐจ์ด๊ฐ ์ต๋ 1์ ๋๋ค.
- ํน์ง: ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ O(log n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง.
- ์ฌ์ฉ ์: ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋น ๋ฅด๊ฒ ๊ฒ์ํด์ผ ํ ๋.
9. ๋ ๋-๋ธ๋ ํธ๋ฆฌ(Red-Black Tree)
- ์ค๋ช : ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ก, ๊ฐ ๋ ธ๋๊ฐ ๋นจ๊ฐ ๋๋ ๊ฒ์ ์ผ๋ก ์์น ๋ฉ๋๋ค.
- ํน์ง: ๊ฒ์, ์ฝ์ , ์ญ์ ๊ฐ O(log n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง, ๊ท ํ ์ ์ง.
- ์ฌ์ฉ ์: ๋งต๊ณผ ์ธํธ์ ๋ด๋ถ ๊ตฌํ.
10. ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ(Segment Tree)
- ์ค๋ช : ํน์ ๋ฒ์์ ์ฟผ๋ฆฌ์ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ํธ๋ฆฌ์ ๋๋ค.
- ํน์ง: ๊ตฌ๊ฐ ํฉ, ์ต๋๊ฐ, ์ต์๊ฐ ๋ฑ์ ์ฟผ๋ฆฌ๋ฅผ O(log n) ์๊ฐ๋ณต์ก๋๋ก ์ฒ๋ฆฌ.
- ์ฌ์ฉ ์: ๋ฒ์ ์ฟผ๋ฆฌ๊ฐ ํ์ํ ๋ฌธ์ .
11. ํ์ ํธ๋ฆฌ(Fenwick Tree)
- ์ค๋ช : ์ด์ง ์ธ๋ฑ์ค ํธ๋ฆฌ๋ก, ๋ถ๋ถ ํฉ ์ฟผ๋ฆฌ์ ์ ๋ฐ์ดํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํ.
- ํน์ง: ๊ตฌ๊ฐ ํฉ ์ฟผ๋ฆฌ์ ์ ๋ฐ์ดํธ๋ฅผ O(log n) ์๊ฐ๋ณต์ก๋๋ก ์ฒ๋ฆฌ.
- ์ฌ์ฉ ์: ์ฃผ์ ๊ฑฐ๋ ์์คํ , ๊ตฌ๊ฐ ํฉ ๋ฌธ์ .
๐ซ Java์์์ ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ
์๋ฐ์์๋ Java Collections Framework๋ฅผ ํตํด ์๋์ ๊ฐ์ด ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ค.
1. ๋ฐฐ์ด (Array)
- ํน์ง: ๊ณ ์ ํฌ๊ธฐ, ์ธ๋ฑ์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅ.
- ๋ฉ์๋:
- int[] array = new int[10]; // ๋ฐฐ์ด ์ ์ธ ๋ฐ ์์ฑ
- array.length // ๋ฐฐ์ด์ ๊ธธ์ด
2. List (ArrayList)
- ํน์ง: ๋์ ๋ฐฐ์ด, ํฌ๊ธฐ ์๋ ์กฐ์ . / ์์ ์์, ์ค๋ณต๋ ์์ ํ์ฉ
- ๋ฉ์๋:
- add(E e): ๋ฆฌ์คํธ์ ๋์ ์์๋ฅผ ์ถ๊ฐ
- add(int index, E element): ์ง์ ๋ ์์น์ ์์๋ฅผ ์ฝ์
- get(int index): ์ง์ ๋ ์์น์ ์๋ ์์๋ฅผ ๋ฐํ
- remove(int index): ์ง์ ๋ ์์น์ ์์๋ฅผ ์ ๊ฑฐ
- set(int index, E element): ์ง์ ๋ ์์น์ ์์๋ฅผ ์ง์ ๋ ์์๋ก ๋ฐ๊ฟ
- contains(Object o): ๋ฆฌ์คํธ์ ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
- indexOf(Object o): ๋ฆฌ์คํธ์์ ํน์ ์์์ ์ฒซ ๋ฒ์งธ ๋ฐ์ ์์น๋ฅผ ๋ฐํ
- size(): ๋ฆฌ์คํธ์ ์์ ๊ฐ์๋ฅผ ๋ฐํ
- clear(): ๋ฆฌ์คํธ์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐ
- subList(int fromIndex, int toIndex): ๋ฆฌ์คํธ์ ํน์ ๋ฒ์์ ์์๋ค๋ก ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ฐํ
3. LinkedList
- ํน์ง: ์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ์์ ์ฝ์ /์ญ์ ๊ฐ ์ฉ์ด.
- ๋ฉ์๋:
- add(E e) // ์์ ์ถ๊ฐ
- addFirst(E e) // ์ฒซ ๋ฒ์งธ ์์น์ ์์ ์ถ๊ฐ
- addLast(E e) // ๋ง์ง๋ง ์์น์ ์์ ์ถ๊ฐ
- remove(int index) // ํน์ ์ธ๋ฑ์ค์ ์์ ์ ๊ฑฐ
- removeFirst() // ์ฒซ ๋ฒ์งธ ์์ ์ ๊ฑฐ
- removeLast() // ๋ง์ง๋ง ์์ ์ ๊ฑฐ
- get(int index) // ํน์ ์ธ๋ฑ์ค์ ์์ ๋ฐํ
- getFirst() // ์ฒซ ๋ฒ์งธ ์์ ๋ฐํ
- getLast() // ๋ง์ง๋ง ์์ ๋ฐํ
- size() // ๋ฆฌ์คํธ์ ํฌ๊ธฐ ๋ฐํ
- clear() // ๋ชจ๋ ์์ ์ ๊ฑฐ
- contains(Object o) // ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
4. Stack
- ํน์ง: ํ์ ์ ์ถ (LIFO).
- ๋ฉ์๋:
- push(E item) // ์์ ์ถ๊ฐ
- pop() // ๋งจ ์์ ์์ ์ ๊ฑฐ ๋ฐ ๋ฐํ
- peek() // ๋งจ ์์ ์์ ๋ฐํ
- isEmpty() // ์คํ์ด ๋น์ด ์๋์ง ํ์ธ
- search(Object o) // ํน์ ์์์ ์์น ๋ฐํ
5. Queue (LinkedList๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ)
- ํน์ง: ์ ์ ์ ์ถ (FIFO).
- ๋ฉ์๋:
- add(E e) // ์์ ์ถ๊ฐ (์์ธ ๋ฐ์)
- offer(E e) // ์์ ์ถ๊ฐ (์ฑ๊ณต ์ฌ๋ถ ๋ฐํ)
- remove() // ์ฒซ ๋ฒ์งธ ์์ ์ ๊ฑฐ ๋ฐ ๋ฐํ (์์ธ ๋ฐ์)
- poll() // ์ฒซ ๋ฒ์งธ ์์ ์ ๊ฑฐ ๋ฐ ๋ฐํ (์์ผ๋ฉด null ๋ฐํ)
- element() // ์ฒซ ๋ฒ์งธ ์์ ๋ฐํ (์์ธ ๋ฐ์)
- peek() // ์ฒซ ๋ฒ์งธ ์์ ๋ฐํ (์์ผ๋ฉด null ๋ฐํ)
- isEmpty() // ํ๊ฐ ๋น์ด ์๋์ง ํ์ธ
- size() // ํ์ ํฌ๊ธฐ ๋ฐํ
6. HashMap
- ํน์ง: ํค-๊ฐ ์์ผ๋ก ์ ์ฅ, ํด์ ํจ์๋ฅผ ์ฌ์ฉํ ๋น ๋ฅธ ๊ฒ์.
- ๋ฉ์๋:
- put(K key, V value) // ํค-๊ฐ ์ ์ถ๊ฐ
- get(Object key) // ํน์ ํค์ ๊ฐ ๋ฐํ
- remove(Object key) // ํน์ ํค์ ๊ฐ ์ ๊ฑฐ
- containsKey(Object key) // ํน์ ํค๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
- containsValue(Object value) // ํน์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ
- size() // ๋งต์ ํฌ๊ธฐ ๋ฐํ
- clear() // ๋ชจ๋ ์์ ์ ๊ฑฐ
- keySet() // ๋ชจ๋ ํค (Set)๋ฐํ
- values() // ๋ชจ๋ ๊ฐ (Collection)๋ฐํ
- entrySet() // ๋ชจ๋ ํค-๊ฐ ์ (Set)๋ฐํ
7. TreeMap
- ํน์ง: ํค-๊ฐ ์์ผ๋ก ์ ์ฅ, ํค๊ฐ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ.
- ๋ฉ์๋:
- put(K key, V value) // ํค-๊ฐ ์ ์ถ๊ฐ
- get(Object key) // ํน์ ํค์ ๊ฐ ๋ฐํ
- remove(Object key) // ํน์ ํค์ ๊ฐ ์ ๊ฑฐ
- containsKey(Object key) // ํน์ ํค๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
- containsValue(Object value) // ํน์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง ํ์ธ
- size() // ๋งต์ ํฌ๊ธฐ ๋ฐํ
- clear() // ๋ชจ๋ ์์ ์ ๊ฑฐ
- firstKey() // ์ฒซ ๋ฒ์งธ ํค ๋ฐํ
- lastKey() // ๋ง์ง๋ง ํค ๋ฐํ
- keySet() // ๋ชจ๋ ํค ๋ฐํ
- values() // ๋ชจ๋ ๊ฐ ๋ฐํ
- entrySet() // ๋ชจ๋ ํค-๊ฐ ์ ๋ฐํ
8. HashSet
- ํน์ง: ์ค๋ณต๋์ง ์๋ ์์๋ค์ ์งํฉ, ํด์ ํจ์๋ฅผ ์ฌ์ฉํ ๋น ๋ฅธ ๊ฒ์.
- ๋ฉ์๋:
- add(E e) // ์์ ์ถ๊ฐ
- remove(Object o) // ํน์ ์์ ์ ๊ฑฐ
- contains(Object o) // ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
- size() // ์งํฉ์ ํฌ๊ธฐ ๋ฐํ
- clear() // ๋ชจ๋ ์์ ์ ๊ฑฐ
- isEmpty() // ์งํฉ์ด ๋น์ด ์๋์ง ํ์ธ
// Set -> ๋ฐฐ์ด
Integer[] arr = set.toArray(new Integer[0]); // 0์ ์
๋ ฅํ๋ฉด arr์ ํฌ๊ธฐ๋ฅผ ์๋์ผ๋ก ์ง์ ํด์ค๋ค
9. TreeSet
- ํน์ง: ์ค๋ณต๋์ง ์๋ ์์๋ค์ ์งํฉ, ์ ๋ ฌ๋ ์ํ๋ก ์ ์ฅ.
- ๋ฉ์๋:
- add(E e) // ์์ ์ถ๊ฐ
- remove(Object o) // ํน์ ์์ ์ ๊ฑฐ
- contains(Object o) // ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
- size() // ์งํฉ์ ํฌ๊ธฐ ๋ฐํ
- clear() // ๋ชจ๋ ์์ ์ ๊ฑฐ
- isEmpty() // ์งํฉ์ด ๋น์ด ์๋์ง ํ์ธ
- first() // ์ฒซ ๋ฒ์งธ ์์ ๋ฐํ
- last() // ๋ง์ง๋ง ์์ ๋ฐํ
- headSet(E toElement) // ํน์ ์์๋ณด๋ค ์์ ๋ชจ๋ ์์ ๋ฐํ
- tailSet(E fromElement) // ํน์ ์์๋ณด๋ค ํฐ ๋ชจ๋ ์์ ๋ฐํ
'์๊ณ ๋ฆฌ์ฆ > ์๋ฃ๊ตฌ์กฐ ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด์ง ํ์ ํธ๋ฆฌ (Binary search tree) BST - ์๋ฃ๊ตฌ์กฐ (0) | 2024.07.03 |
---|---|
java - ๋นํธ ์ฐ์ฐ์ (0) | 2024.06.26 |
ํ(Heap) - ์๋ฃ๊ตฌ์กฐ (0) | 2024.06.22 |
ํธ๋ฆฌ(Tree) - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ (0) | 2024.06.22 |
Linked List - ์๋ฃ๊ตฌ์กฐ (0) | 2024.06.21 |