Java์ ์ปฌ๋ ์ ์ด๋ ๋ฌด์์ ๋๊น?
Java์ ์ปฌ๋ ์ ์ ๋ชจ๋ ์์๋ฅผ โโ๋จ์ผ ๋จ์๋ก ๊ทธ๋ฃนํํ๋ ์ปจํ ์ด๋๋ก ํ์๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฉ์ผ ํด๋(์ด๋ฉ์ผ ๊ทธ๋ฃน), ์ ํ๋ฒํธ๋ถ(์ด๋ฆ๊ณผ ์ ํ๋ฒํธ ๋งคํ) ๋ฑ์ด ์์ต๋๋ค.ํ๋ ์์ํฌ๋ ๋ฌด์์ ๋๊น?
ํ๋ ์์ํฌ๋ ์ ๊ณต๋ ๋ค์ํ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์์ํ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฐ ๋๋ ๋ ์ด์์์ ๋๋ค. ์๋ฅผ ๋ค์ด , Laravel์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ๋ผ๋๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฅ ์ ๋ช ํ PHP ํ๋ ์์ํฌ ์ค ํ๋์ ๋๋ค.Java์ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ๋ฌด์์ ๋๊น?
๋ชจ๋ ๊ฐ์ฒด๋ ์ปฌ๋ ์ ์ ์กฐ์ํ๊ธฐ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํ๋ด๊ณ ์ ๊ณตํ๋ ์ํคํ ์ฒ์ ํจ๊ป ๋จ์ผ ๊ฐ์ฒด๋ก ๊ทธ๋ฃนํ๋ฉ๋๋ค. ๋ฐ๋ผ์ Java์ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ๋ฐ์ดํฐ ๋ฐ ๋ฉ์๋๋ฅผ ์ ์ฅํ๊ณ ์ ๋ ฌ, ๊ฒ์, ์ญ์ ๋ฐ ์ฝ์ ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์กฐ์ํ๊ธฐ ์ํด ์ด๋ฏธ ๊ตฌํ๋ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค . ์๋ฅผ ๋ค์ด , ์์์ ํ์ฌ๊ฐ ์ ์ฐฉ์์ผ๋ก ๊ณ ๊ฐ ์๋น์ค๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ์์คํ ์ ๊ตฌํํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ FIFO(์ ์ ์ ์ถ) ๊ตฌํ์ด๋ผ๊ณ ๋ ํฉ๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ ๋ค์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉํ๋ฅผ ๋ฌ์ฑํด์ผ ํฉ๋๋ค. ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ๊ตฌํ๋ณด๋ค๋ ๊ฐ์ ธ์ค๊ธฐ๋ง ํ๋ฉด ๋๋ Queue ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ด ์๋ฃ๋ฉ๋๋ค. ๊ตฌํ : ๋ค์ ์ค์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ปฌ๋ ์ ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.import java.util.*;
ํน์ ์ปฌ๋ ์
์ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ ํํ ํจํค์ง ์ด๋ฆ์ ์ฌ์ฉํ์ธ์.
import java.util.LinkedList;
Java ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ์ด์
๋ค์๊ณผ ๊ฐ์ ์ด์ ์ด ์์ต๋๋ค.- ์ด๋ฏธ ๊ตฌํ๋์์ต๋๋ค(์๊ฐ ์ ์ฝ).
- ์ฑ๋ฅ ํจ์จ์ฑ(์๋ ๋ฐ ํ์ง).
- ์๋ก์ด API๋ฅผ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๋ ๋ ธ๋ ฅ์ด ์ค์ด๋ญ๋๋ค.
์ปฌ๋ ์ ํ๋ ์์ํฌ์ ๊ณ์ธต ๊ตฌ์กฐ๋ ๋ฌด์์ ๋๊น?
์ด์ ์ปฌ๋ ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋จผ์ ์ด ํ๋ ์์ํฌ์ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ์์์ผ ํฉ๋๋ค.- ์ธํฐํ์ด์ค
- ํด๋์ค(๊ตฌํ)
- ์๊ณ ๋ฆฌ์ฆ
์์ง ํ๋ ์์ํฌ์ ๊ณ์ธต ๊ตฌ์กฐ

- Collection, Set, Queue ๋ฐ List๋ ๋ชจ๋ ์ธํฐํ์ด์ค์ ๋๋ค. Set, Queue ๋ฐ List๋ Collection ์ธํฐํ์ด์ค์ ์ํด ํ์ฅ ๋ฉ๋๋ค.
- PriorityQueue, HashSet, LinkedList ๋ฐ Stack์ ๋ชจ๋ ํด๋์ค์ด๊ฑฐ๋ ์ด๋ฌํ ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋๋ค.
- ํด๋์ค๊ฐ ํ๋์ ์ธํฐํ์ด์ค๋ง ๊ตฌํํ๋ ๊ฒ์ด ํ์๋ ์๋๋๋ค . ์๋ฅผ ๋ค์ด LinkedList๋ Deque ์ธํฐํ์ด์ค๋ ๊ตฌํํฉ๋๋ค.
์ปฌ๋ ์ ์ ํ
Java ์ปฌ๋ ์ ํ๋ ์์ํฌ์๋ ์ฐ๋ฆฌ์ ๋ ธ๋ ฅ์ ์ค์ด๊ธฐ ์ํด ๋ง์ ์ ํ์ ์ปฌ๋ ์ ์ด ์์ต๋๋ค. ๋ค์์ ์ผ๋ถ ์ปฌ๋ ์ ๋ชฉ๋ก์ ๋๋ค.- ArrayList ํด๋์ค
- ๋งํฌ๋๋ฆฌ์คํธ ํด๋์ค
- ๋ชฉ๋ก ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค ์ค์
- ๋๊ธฐ์ด ์ธํฐํ์ด์ค
- ์ง๋ ์ธํฐํ์ด์ค
- PriorityQueue ํด๋์ค
- ํด์๋งต ํด๋์ค
- ๋น๊ต ๊ฐ๋ฅํ ์ธํฐํ์ด์ค
- LinkedHashMap ํด๋์ค
- ํธ๋ฆฌ๋งต ํด๋์ค
- ํด์ํ ์ด๋ธ
์ปฌ๋ ์ ์ธํฐํ์ด์ค
์ฌ๊ธฐ์์๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ปฌ๋ ์ ์ธํฐํ์ด์ค์ ํด๋์ค์์ ๊ตฌํํ๋ ๋ช ๊ฐ์ง ๋ฉ์๋์ ๋ํด ์ค๋ช ํฉ๋๋ค.์์ง ์ธํฐํ์ด์ค
์ด๋ ๊ตฌํ์ ํ์ํ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ฏ๋ก ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ๊ธฐ๋ณธ ๊ธฐ๋ฐ์ ๋๋ค. Map์ ์ด๋ฅผ ๊ตฌํํ์ง ์๋ ์ ์ผํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด์ง๋ง ๋๋จธ์ง๋ ๋ชจ๋ ํด๋น ๋ฉ์๋๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด ์ธํฐํ์ด์ค์๋ ์ปฌ๋ ์ ์ ํฌ๊ธฐ, ๊ฐ์ฒด๊ฐ ์ปฌ๋ ์ ์ ์กด์ฌํ๋์ง ์ฌ๋ถ, ์ปฌ๋ ์ ์์ ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์๋ ๋ฉ์๋๊ฐ ์์ต๋๋ค.๋ฐ๋ณต ๊ฐ๋ฅํ ์ธํฐํ์ด์ค
๋ชจ๋ ํด๋์ค์ ์ํด ๊ตฌํ๋๋ Collection ์ธํฐํ์ด์ค์ ์ํด ํ์ฅ๋๋ฏ๋ก Collections ํ๋ ์์ํฌ์ ๋ฃจํธ ์ธํฐํ์ด์ค์ ๋๋ค. ํน์ ์ปฌ๋ ์ ์ ๋ฐ๋ณตํ ๋ฐ๋ณต์๋ฅผ ๋ฐํํฉ๋๋ค.๋๊ธฐ์ด ์ธํฐํ์ด์ค
๋๊ธฐ์ด์ ์์๋ฅผ ๋ณด์ ํ๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง ์ฒ๋ฆฌํ ์๋ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ปฌ๋ ์ ์์ ์ ๊ตฌํํ๋ฉด์ ์ถ๊ฐ ์ฝ์ ๋ฐ ์ถ์ถ ๋ฐฉ๋ฒ๋ ์ ๊ณตํฉ๋๋ค.์ธํฐํ์ด์ค ์ค์
์ธํธ๋ ๊ณ ์ ํ ์์๋ฅผ ๋ณด์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ์ค๋ณต๋ ์์๋ฅผ ํฌํจํ์ง ์์ผ๋ฉฐ ์ํ์ ์งํฉ ์ถ์ํ๋ฅผ ๋ชจ๋ธ๋งํ์ฌ ๊ธฐ๊ณ์์ ์คํ๋๋ ํ๋ก์ธ์ค์ ๊ฐ์ ์งํฉ์ ๋ํ๋ ๋๋ค.๋ชฉ๋ก ์ธํฐํ์ด์ค
๋ฆฌ์คํธ๋ ์ค๋ณต๋ ์์๋ฅผ ๋ณด์ ํ ์ ์๋ ์ํ์ค๋ผ๊ณ ๋ ํ๋ ์์๊ฐ ์ง์ ๋ ์ปฌ๋ ์ ์ ๋๋ค. ์ ์ ์ธ๋ฑ์ค ๊ฐ์ ์ฌ์ฉํ์ฌ ํน์ ์ง์ ์ ์์๋ฅผ ์ฝ์ ํ๊ณ ํน์ ์์๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ ๊ฑฐํ๊ธฐ ์ํ ์ ์ด๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํฉ๋๋ค. LinkedList ๋ฐ ArrayList๋ List ์ธํฐํ์ด์ค์ ๊ตฌํ ํด๋์ค์ ๋๋ค.๋ฐํฌ ์ธํฐํ์ด์ค
Deque๋ ์์ชฝ ๋์์ ์์ ์ ์ํํ ์ ์์์ ์๋ฏธํ๋ ์ด์ค ๋ ํ๋ฅผ ๋ํ๋ ๋๋ค. ์์ชฝ ๋์์ ์์๋ฅผ ์ฝ์ ํ๊ณ ์ ๊ฑฐํ ์ ์์ต๋๋ค. Deque ์ธํฐํ์ด์ค๋ ๋๊ธฐ์ด ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํฉ๋๋ค. ArrayDeque์ LinkedList๋ ๋ชจ๋ Deque ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ์์ชฝ ๋์์ ์ธ์คํด์ค๋ฅผ ์ฝ์ , ์ญ์ ๋ฐ ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.์ง๋ ์ธํฐํ์ด์ค
๋งต ์ธํฐํ์ด์ค๋ ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ์ผ๋ถ์ด์ง๋ง ์ปฌ๋ ์ ์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ์ง๋ ์์ต๋๋ค. ํค-๊ฐ ์์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ฃผ์ ๊ตฌํ์ HashSet, TreeSet ๋ฐ LinkedHashSet๊ณผ ํน์ ์ธก๋ฉด์์ ์ ์ฌํ HashMap, TreeMap ๋ฐ LinkesHashMap์ ๋๋ค. ํญ์ ๊ณ ์ ํค๋ฅผ ํฌํจํ์ง๋ง ๊ฐ์ด ์ค๋ณต๋ ์ ์์ต๋๋ค. ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํญ๋ชฉ์ ์ถ๊ฐ, ์ญ์ , ๊ฒ์ํด์ผ ํ ๋ ์ ์ฉํฉ๋๋ค. put , get , Remove , size , empty ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค .์ด๋ฌํ ์ธํฐํ์ด์ค์ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ
์ด์ ์ฐ๋ฆฌ๋ Map ์ธํฐํ์ด์ค๋ฅผ ์ ์ธํ๊ณ ์ด ํ๋ ์์ํฌ์์ ๋ค์ํ ํด๋์ค๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ ๊ณต๋๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๋ฉ์๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.ํ๋ ์์ | ์ค๋ช |
---|---|
๊ณต๊ฐ ๋ถ์ธ ์ถ๊ฐ(E e) | ์ปฌ๋ ์ ์ ์์๋ฅผ ์ฝ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ ์ ๊ฑฐ(๊ฐ์ฒด ์์) | ์ปฌ๋ ์ ์์ ์์๋ฅผ ์ ๊ฑฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
๊ณต๊ฐ ์ ์ ํฌ๊ธฐ() | ์ปฌ๋ ์ ์ ์์ ์๋ฅผ ๋ฐํํฉ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ ํฌํจ(๊ฐ์ฒด ์์) | ์์๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ isEmpty() | ์ปฌ๋ ์ ์ด ๋น์ด ์๋์ง ํ์ธํฉ๋๋ค. |
๊ณต๊ฐ ๋ถ์ธ ๊ฐ์(๊ฐ์ฒด ์์) | ๋๋ฑ์ฑ์ ํ์ธํฉ๋๋ค. |
์ปฌ๋ ์ ํด๋์ค
์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ฏ์ด ํ๋ ์์ํฌ์๋ ๋ด๋ถ์ ๋ง์ ํด๋์ค์ ์ํด ๊ตฌํ๋๋ ๋ค์ํ ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค. ์ด์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ช ๊ฐ์ง ํด๋์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.๋งํฌ๋๋ฆฌ์คํธ
๋ด๋ถ์ ์์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ด์ค ์ฐ๊ฒฐ ๋ชฉ๋ก์ ๊ตฌํํ๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ์ค๋ณต๋ ์์๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. Queue ์ธํฐํ์ด์ค์ List ์ธํฐํ์ด์ค์ ์ํด ํ์ฅ๋ Dequeue ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ๋๊ธฐํ๋์ง ์์์ต๋๋ค. ์ด์ LinkedList๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๋ ผ์ํ ๋ฌธ์ (FIFO ๊ฐ๋ )๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ฌธ์ ๋ ๊ณ ๊ฐ์ด ๋์ฐฉํ๋ ๋ฐฉ์, ์ฆ ์ ์ ์ ์ถ ๋ฐฉ์ ์ผ๋ก ๊ณ ๊ฐ์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค .์
import java.util.*;
public class LinkedListExample {
public static void main(String[] args) {
Queue<String> customerQueue = new LinkedList<String>();
//Adding customers to the Queue as they arrived
customerQueue.add("John");
customerQueue.add("Angelina");
customerQueue.add("Brooke");
customerQueue.add("Maxwell");
System.out.println("Customers in Queue:"+customerQueue);
//element() => returns head of the queue
//we will see our first customer and serve him
System.out.println("Head of the queue i.e first customer: "+customerQueue.element());
//remove () method =>removes first element(customer) from the queue i.e the customer is served so remove him to see next
System.out.println("Element removed from the queue: "+customerQueue.remove());
//poll () => removes and returns the head
System.out.println("Poll():Returned Head of the queue: "+customerQueue.poll());
//print the remaining customers in the Queue
System.out.println("Final Queue:"+customerQueue);
}
}
์ฐ์ถ
๋๊ธฐ์ด์ ๊ณ ๊ฐ:[John, Angelina, Brooke, Maxwell] ๋๊ธฐ์ด์ ํค๋, ์ฆ ์ฒซ ๋ฒ์งธ ๊ณ ๊ฐ: John ์์๊ฐ ๋๊ธฐ์ด์์ ์ ๊ฑฐ๋จ: John Poll():๋ฐํ๋ ๋๊ธฐ์ด์ ํค๋: Angelina ์ต์ข
๋๊ธฐ์ด:[Brooke, Maxwell]
๋ฐฐ์ด๋ชฉ๋ก
์ด๋ ๋จ์ํ List ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ์ฝ์ ์์๋ฅผ ์ ์งํ๊ณ ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์์๋ฅผ ์ ์ฅํฉ๋๋ค. ์์๋ ๋ณต์ ๋ ์ ์์ต๋๋ค. ๋ํ ๋น๋๊ธฐํ๋์ด ์์ผ๋ฉฐ null ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด์ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฝ์ ํด์ผ ํ๋ ๋ ์ฝ๋๋ ์์ ์๋ฅผ ๋ชจ๋ฅผ ๋ ์ ์ฉํฉ๋๋ค. ์ผ๋ง๋ ๋ง์ ์ฑ ์ ๋ณด๊ดํด์ผ ํ๋์ง ์ ์ ์๋ ๋์๊ด์ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ผ์ ์ฑ ์ด ์์ ๋๋ง๋ค ์ด๋ฅผ ArrayList์ ์ฝ์ ํด์ผ ํฉ๋๋ค.์
public class ArrayListExample {
public static void main(String args[]) {
// Creating the ArrayList
ArrayList<String> books = new ArrayList<String>();
// Adding a book to the list
books.add("Absalom, Absalom!");
// Adding a book in array list
books.add("A Time to Kill");
// Adding a book to the list
books.add("The House of Mirth");
// Adding a book to the list
books.add("East of Eden");
// Traversing the list through Iterator
Iterator<String> itr = books.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
์ฐ์ถ
์์ด๋กฌ, ์์ด๋กฌ! ์๋ด ๋์ชฝ์ ์๋ ๋ฏธ๋ฅด์ค์ ์ง์ ์ฃฝ์ผ ์๊ฐ
ํด์์ธํธ
์ด๋ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ฉฐ ์ค๋ณต๋ ๊ฐ์ ํฌํจํ์ง ์์ต๋๋ค. ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ํด์ ํ ์ด๋ธ์ ๊ตฌํํฉ๋๋ค. ๋ํ null ๊ฐ๋ ํ์ฉ๋ฉ๋๋ค. ์ฝ์ ์์๋ฅผ ์ ์งํ์ง ์์ง๋ง add , Remove , size ๋ฐ contain ๋ฉ์๋ ์ ๋ํด ์ผ์ ํ ์๊ฐ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค . ๊ฒ์ ์์ ์ ๊ฐ์ฅ ์ ํฉํ๋ฉฐ ๋๊ธฐํ๋์ง ์์ต๋๋ค.์
import java.util.*;
class HashSetExample{
public static void main(String args[]){
//creating HashSet and adding elements to it
HashSet<Integer> hashSet=new HashSet();
hashSet.add(1);
hashSet.add(5);
hashSet.add(4);
hashSet.add(3);
hashSet.add(2);
//getting an iterator for the collection
Iterator<Integer> i=hashSet.iterator();
//iterating over the value
while(i.hasNext()) {
System.out.println(i.next());
}
}
}
์ฐ์ถ
1 2 3 4 5
๋ณด์๋ค์ํผ ์ฝ์
์์๋ฅผ ์ ์งํ์ง ์์ต๋๋ค.
ArrayDeque
Deque ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ฌ ์์ชฝ ๋์์ ์์ ์ด ๊ฐ๋ฅํ๋๋ก ํฉ๋๋ค. null ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. Stack, LinkedList๋ก ๊ตฌํํ๋ฉด Stack, LinkedList๋ณด๋ค ์๋๊ฐ ๋น ๋ฆ ๋๋ค. ArrayDeque๋ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ํ์ฅ ๋ฐ ์ถ์๋๋ฏ๋ก ํฌ๊ธฐ ์ ํ์ด ์์ต๋๋ค. ๋น๋๊ธฐํ๋์ด ์์ด ์ค๋ ๋๋ก๋ถํฐ ์์ ํ์ง ์์ต๋๋ค. ์ค๋ ๋๋ก๋ถํฐ ์์ ํ ์ํ๋ฅผ ์ ์งํ๋ ค๋ฉด ์ผ๋ถ ์ธ๋ถ ๋ ผ๋ฆฌ๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค.์
import java.util.*;
public class ArrayDequeExample {
public static void main(String[] args) {
//creating Deque and adding elements
Deque<String> deque = new ArrayDeque<String>();
//adding an element
deque.add("One");
//adding an element at the start
deque.addFirst("Two");
//adding an element at the end
deque.addLast("Three");
//traversing elements of the collection
for (String str : deque) {
System.out.println(str);
}
}
}
์ฐ์ถ
๋ ํ๋ ์
ํด์๋งต
์ด๋ ํด์ ํ ์ด๋ธ์ด ์ง์ํ๋ Map ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๋๋ค. ํค-๊ฐ ์์ ์ ์ฅํฉ๋๋ค. null ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. ๋๊ธฐํ๋์ง ์์์ต๋๋ค. ์ฝ์ ์์๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค. get ๋ฐ put ๊ณผ ๊ฐ์ ๋ฉ์๋์ ๋ํด ์ผ์ ํ ์๊ฐ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค . ์ฑ๋ฅ์ ์ด๊ธฐ ์ฉ๋ ๊ณผ ๋ถํ์จ์ด๋ผ๋ ๋ ๊ฐ์ง ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค . ์ฉ๋์ ํด์ ํ ์ด๋ธ์ ๋ฒํท ์์ด๋ฏ๋ก ์ด๊ธฐ ์ฉ๋์ ์์ฑ ์ ํ ๋น๋ ๋ฒํท ์์ ๋๋ค. ๋ก๋ ํฉํฐ๋ ์ฉ๋์ด ์ฆ๊ฐํ๊ธฐ ์ ์ ํด์ ํ ์ด๋ธ์ด ์ฑ์์ง ์ ์๋ ์์ ์ธก์ ํ ๊ฒ์ ๋๋ค. Rehash ๋ฐฉ์์ ์ฉ๋์ ๋๋ฆฌ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ ์ฃผ๋ก ๋ฒํท ์๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ฆฝ๋๋ค.์
import java.util.*;
public class HashMapExample{
public static void main(String args[]){
//creating a HashMap
HashMap<Integer,String> map=new HashMap<Integer,String>();
//putting elements into the map
map.put(1,"England");
map.put(2,"USA");
map.put(3,"China");
//get element at index 2
System.out.println("Value at index 2 is: "+map.get(2));
System.out.println("iterating map");
//iterating the map
for(Map.Entry m : map.entrySet()){
System.out.println(m.getKey()+" "+m.getValue());
}
}
}
์ฐ์ถ
์ธ๋ฑ์ค 2์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ค๊ตญ ๋ฐ๋ณต ์ง๋ 1 ์๊ตญ 2 ๋ฏธ๊ตญ 3 ์ค๊ตญ
์๊ณ ๋ฆฌ์ฆ
์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ์ปฌ๋ ์ ์ ์ ์ฉํ ๋ค์ํ ์์ ์ ๋ํ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ค ์ฃผ์ ์์ ์ ๋ค๋ฃจ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์๊ณผ ๊ด๋ จ๋ ์๊ณ ๋ฆฌ์ฆ์ด ํฌํจ๋์ด ์์ต๋๋ค.- ์ ๋ ฌ
- ์์
- ์ ํ๋ง
- ์ผ์์ ์ธ ๋ฐ์ดํฐ ์กฐ์
- ๊ตฌ์ฑ
- ๊ทน๋จ๊ฐ ์ฐพ๊ธฐ
์ ๋ ฌ
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๊ด๊ณ์ ๋ฐ๋ผ ๋ชฉ๋ก์ ๋ค์ ์ ๋ ฌํฉ๋๋ค. ๋ ๊ฐ์ง ํํ์ ๊ด๊ณ๊ฐ ์ ๊ณต๋ฉ๋๋ค.- ์์ฐ์ ์ธ ์์
- ๋น๊ต ์ ๋ ฌ
์์ฐ์ ์ธ ์์
์์ฐ ์์์์๋ ๋ชฉ๋ก์ด ํด๋น ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋ฉ๋๋ค.๋น๊ต ์ ๋ ฌ
์ด๋ฌํ ์์ ์ง์ ํ์์์๋ ๋น๊ต๊ธฐ์ธ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๊ฐ ๋ชฉ๋ก๊ณผ ํจ๊ป ์ ๋ฌ๋ฉ๋๋ค. ์ฝ๊ฐ ์ต์ ํ๋ ๋ณํฉ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ n log(n) ์คํ ์๊ฐ์ ๋ณด์ฅํ๊ณ ๋์ผํ ์์๋ฅผ ์ฌ์ ๋ ฌํ์ง ์์ผ๋ฏ๋ก ๋น ๋ฅด๊ณ ์์ ์ ์ธ ์ ๋ ฌ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ ๋ ฌ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ArrayList์ ๋์ผํ ์์ ๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.์
import java.util.*;
public class SortingExample{
public static void main(String args[]){
//Creating arraylist
ArrayList<String> books=new ArrayList<String>();
//Adding a book to the arraylist
books.add("A Time to Kill");
//Adding a book to the arraylist
books.add("Absalom, Absalom!");
//Adding a book to the arraylist
books.add("The House of Mirth");
//Adding a book to the arraylist
books.add("East of Eden");
//Traversing list through Iterator before sorting
Iterator itrBeforeSort=books.iterator();
while(itrBeforeSort.hasNext()){
System.out.println(itrBeforeSort.next());
}
//sorting the books
Collections.sort(books);
System.out.println("After sorting the books");
//Traversing list through Iterator after sorting
Iterator itr=books.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
์ฐ์ถ
์์ด๋กฌ์ ์ฃฝ์ผ ๋๋ค ์์ด๋กฌ์! ์๋ด๋์ชฝ ํํฌ์ ์ง ์ฑ
์ ์ ๋ฆฌํ ํ ์์ด๋กฌ์ ์ฃฝ์ผ ๋, ์์ด๋กฌ! ์๋ด์ ๋์ชฝ ๋ฏธ๋ฅด์ค์ ์ง
GO TO FULL VERSION