[JAVA] 17. μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬(List, Set, Map) , ArrayList, LinkedList, Stack&Queue

2022. 5. 8. 15:06ㆍJAVA/μžλ°”μ˜ 정석

728x90

μ»¬λ ‰μ…˜ : μ—¬λŸ¬ 객체(데이터)λ₯Ό λͺ¨μ•„놓은 것을 μ˜λ―Έν•œλ‹€. 

ν”„λ ˆμž„μ›Œν¬ : ν‘œμ€€ν™”, μ •ν˜•ν™”λœ 체계적인 ν”„λ‘œκ·Έλž˜λ° 방식 

μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ : λ‹€μˆ˜μ˜ 객체(μ»¬λ ‰μ…˜)을 닀루기 μœ„ν•œ ν‘œμ€€ν™”λœ ν”„λ‘œκ·Έλž˜λ° 방식 

-> μ»¬λ ‰μ…˜μ„ 쉽고 νŽΈλ¦¬ν•˜κΈ° λ‹€λ£° 수 μžˆλŠ” λ‹€μ–‘ν•œ 클래슀λ₯Ό μ œκ³΅ν•œλ‹€. 

μ»¬λ ‰μ…˜ 클래슀: λ‹€μˆ˜μ˜ 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” 클래슀 

 

 

1️⃣ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ˜ 핡심 μΈν„°νŽ˜μ΄μŠ€ 

μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ—μ„œλŠ” μ»¬λ ‰μ…˜ 데이터 그룹을 크게 3가지 νƒ€μž…μ΄ μ‘΄μž¬ν•œλ‹€κ³  μΈμ‹ν•˜κ³  각 μ»¬λ ‰μ…˜μ„ λ‹€λ£¨λŠ”λ° ν•„μš”ν•œ κΈ°λŠ₯을 가진 3개의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•˜μ˜€λ‹€. 

 

List 

: μˆœμ„œκ°€ μžˆλŠ” λ°μ΄ν„°μ˜ 집합, λ°μ΄ν„°μ˜ 쀑볡을 ν—ˆμš©ν•œλ‹€. 

ArrayList, LinkedList, Stack, Vector λ“± 

 

Set 

: μˆœμ„œλ₯Ό μœ μ§€ν•˜μ§€ μ•ŠλŠ” λ°μ΄ν„°μ˜ 집합, λ°μ΄ν„°μ˜ 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 

HashSet, TreeSet λ“± 

 

Map

: 킀와 κ°’μ˜ 쌍으둜 이루어진 λ°μ΄ν„°μ˜ 집합, μˆœμ„œλŠ” μœ μ§€λ˜μ§€ μ•ŠμœΌλ©°, ν‚€λŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•Šκ³ , 값은 쀑볡을 ν—ˆμš©ν•œλ‹€. 

HashMap, TreeMap, HashTable, Properties λ“± 

 

List 와 Set 을 κ΅¬ν˜„ν•œ μ»¬λ ‰μ…˜ ν΄λž˜μŠ€λ“€μ€ μ„œλ‘œ λ§Žμ€ 곡톡뢀뢄이 μžˆμ–΄μ„œ κ³΅ν†΅λœ 뢀뢄을 λ‹€μ‹œ 뽑아 Collection μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•  수 μžˆμ—ˆμ§€λ§Œ Map μΈν„°νŽ˜μ΄μŠ€λŠ” μ΄λ“€κ³ΌλŠ” μ „ν˜€ λ‹€λ₯Έ ν˜•νƒœλ‘œ μ»¬λ ‰μ…˜μ„ 닀루기 λ•Œλ¬Έμ— 같은 상속계측도에 ν¬ν•¨λ˜μ§€ λͺ»ν•œλ‹€.

 

μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ˜ λͺ¨λ“  μ»¬λ ‰μ…˜ ν΄λž˜μŠ€λ“€μ€ List, Set, Map μ€‘μ˜ ν•˜λ‚˜λ₯Ό κ΅¬ν˜„ν•˜κ³  있으며, κ΅¬ν˜„ν•œ μΈν„°νŽ˜μ΄μŠ€μ˜ 이름이 클래슀의 이름에 ν¬ν•¨λ˜μ–΄ μžˆμ–΄μ„œ μ΄λ¦„λ§ŒμœΌλ‘œ 클래슀의 νŠΉμ§•μ„ μ‰½κ²Œ μ•Œ 수 μžˆλ„λ‘ λ˜μ–΄ μžˆλ‹€.

 

Vectorλ‚˜ HashTableκ³Ό 같은 기쑴의 μ»¬λ ‰μ…˜ ν΄λž˜μŠ€λ“€μ€ ν˜Έν™˜μ„ μœ„ν•΄ 섀계λ₯Ό λ³€κ²½ν•΄μ„œ λ‚¨κ²¨λ‘μ—ˆμ§€λ§Œ, κ°€λŠ₯ν•˜λ©΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€. 

κ·Έ λŒ€μ‹  μƒˆλ‘œ μΆ”κ°€λœ ArrayList와 HashMap을 μ‚¬μš©ν•˜μž!

 

 

- Collection μΈν„°νŽ˜μ΄μŠ€ 

Collection μΈν„°νŽ˜μ΄μŠ€λŠ” μ»¬λ ‰μ…˜ ν΄λž˜μŠ€μ— μ €μž₯된 데이터λ₯Ό 읽고, μΆ”κ°€ν•˜κ³ , μ‚­μ œν•˜λŠ” λ“± μ»¬λ ‰μ…˜μ„ λ‹€λ£¨λŠ”λ° κ°€μž₯ 기본적인 λ©”μ„œλ“œλ“€μ„ μ •μ˜ν•˜κ³  μžˆλ‹€. 

 

 

- List μΈν„°νŽ˜μ΄μŠ€

List μΈν„°νŽ˜μ΄μŠ€λŠ” 쀑볡을 ν—ˆμš©ν•˜λ©΄μ„œ μ €μž₯μˆœμ„œκ°€ μœ μ§€λ˜λŠ” μ»¬λ ‰μ…˜μ„ κ΅¬ν˜„ν•˜λŠ”λ° μ‚¬μš©λœλ‹€. 

 

 

- Set μΈν„°νŽ˜μ΄μŠ€

Set μΈν„°νŽ˜μ΄μŠ€λŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•Šκ³  μ €μž₯μˆœμ„œκ°€ μœ μ§€λ˜μ§€ μ•ŠλŠ” μ»¬λ ‰μ…˜ 클래슀λ₯Ό κ΅¬ν˜„ν•˜λŠ”λ° μ‚¬μš©λœλ‹€. 

 

 

- Map μΈν„°νŽ˜μ΄μŠ€

Map μΈν„°νŽ˜μ΄μŠ€λŠ” ν‚€Key 와 κ°’Value 을 ν•˜λ‚˜μ˜ 쌍으둜 λ¬Άμ–΄μ„œ μ €μž₯ν•˜λŠ” μ»¬λ ‰μ…˜ 클래슀λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. 

ν‚€λŠ” 쀑볡될 수 μ—†μ§€λ§Œ 값은 쀑볡을 ν—ˆμš©ν•œλ‹€. 기쑴에 μ €μž₯된 데이터와 μ€‘λ³΅λœ 킀와 값을 μ €μž₯ν•˜λ©΄ 기쑴의 값은 없어지고 λ§ˆμ§€λ§‰μ— μ €μž₯된 값이 λ‚¨κ²Œλœλ‹€. 

values()μ—μ„œλŠ” λ°˜ν™˜νƒ€μž…μ΄ Collection으둜 List, Set μ–΄λŠ μ»¬λ ‰μ…˜ ν΄λž˜μŠ€κ°€ 와도 λ˜μ§€λ§Œ, KeySet() μ—μ„œλŠ” λ°˜ν™˜νƒ€μž…μ΄ Set이닀!

Map μΈν„°νŽ˜μ΄μŠ€μ—μ„œ 값은 쀑볡을 ν—ˆμš©ν•˜κΈ° λ•Œλ¬Έμ— Collection νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•˜κ³ , ν‚€λŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— Set νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•œλ‹€. 

 

 

2️⃣ ArrayList 

ArrayList λŠ” μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” μ»¬λ ‰μ…˜ 클래슀일 것이닀. 

ArrayList λŠ” List μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κΈ° λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ μ €μž₯μˆœμ„œκ°€ μœ μ§€λ˜κ³  쀑볡을 ν—ˆμš©ν•œλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€. 

ArrayList λŠ” Object 배열을 μ΄μš©ν•΄μ„œ 데이터λ₯Ό 순차적으둜 μ €μž₯ν•œλ‹€. 

μ„ μ–Έλœ λ°°μ—΄μ˜ νƒ€μž…μ΄ λͺ¨λ“  객체의 졜고 쑰상인 Object 이기 λ•Œλ¬Έμ— λͺ¨λ“  μ’…λ₯˜μ˜ 객체λ₯Ό 담을 수 μžˆλ‹€. 

 

-> ArrayList λŠ” List μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν–ˆκΈ° λ•Œλ¬Έμ— μ €μž₯된 μˆœμ„œλ₯Ό μœ μ§€ν•œλ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€. 

-> list2μ—μ„œ list1에 ν¬ν•¨λœ 객체듀을 μ œκ±°ν•˜λŠ” 뢀뢄이닀. 

만일 λ³€μˆ˜ i λ₯Ό μ¦κ°€μ‹œμΌœκ°€λ©΄μ„œ μ‚­μ œν•˜λ©΄, ν•œ μš”μ†Œκ°€ μ‚­μ œλ  λ•Œ λ§ˆλ‹€ 빈 곡간을 μ±„μš°κΈ° μœ„ν•΄ λ‚˜λ¨Έμ§€ μš”μ†Œλ“€μ΄ μžλ¦¬μ΄λ™μ„ ν•˜κΈ° λ•Œλ¬Έμ— μ˜¬λ°”λ₯Έ κ²°κ³Όλ₯Ό 얻을 수 μ—†λ‹€. κ·Έλž˜μ„œ μ œμ–΄ λ³€μˆ˜λ₯Ό κ°μ†Œμ‹œμΌœκ°€λ©΄μ„œ μ‚­μ œλ₯Ό ν•΄μ•Ό μžλ¦¬μ΄λ™μ΄ λ°œμƒν•΄λ„ 영ν–₯을 받지 μ•Šκ³  μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ‹€!!

 

 

3️⃣ LinkedList 

배열은 κ°€μž₯ 기본적인 ν˜•νƒœμ˜ 자료ꡬ쑰둜 ꡬ쑰가 κ°„λ‹¨ν•˜λ©° μ‚¬μš©ν•˜κΈ° 쉽고 데이터λ₯Ό μ½μ–΄μ˜€λŠ”λ° κ±Έλ¦¬λŠ” μ‹œκ°„(μ ‘κ·Ό μ‹œκ°„)이 κ°€μž₯ λΉ λ₯΄λ‹€λŠ” μž₯점을 가지고 μžˆλ‹€. 

 

λ°°μ—΄μ˜ 단점  

1. 크기λ₯Ό λ³€κ²½ν•  수 μ—†λ‹€. 

- 크기λ₯Ό λ³€κ²½ν•  수 μ—†κΈ° λ•Œλ¬Έμ— μƒˆλ‘œμš΄ 배열을 μƒμ„±ν•΄μ„œ 데이터λ₯Ό λ³΅μ‚¬ν•΄μ•Όν•œλ‹€. 

- 싀행속도λ₯Ό ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄μ„œλŠ” μΆ©λΆ„νžˆ 큰 크기의 배열을 생성해야 ν•˜λ―€λ‘œ λ©”λͺ¨λ¦¬κ°€ λ‚­λΉ„λœλ‹€.

 

2. λΉ„μˆœμ°¨μ μΈ λ°μ΄ν„°μ˜ μΆ”κ°€ λ˜λŠ” μ‚­μ œμ— μ‹œκ°„μ΄ 많이 κ±Έλ¦°λ‹€.

- μ°¨λ‘€λŒ€λ‘œ 데이터λ₯Ό μΆ”κ°€ν•˜κ³  λ§ˆμ§€λ§‰μ—μ„œλΆ€ν„° 데이터λ₯Ό μ‚­μ œν•˜λŠ” 것은 λΉ λ₯΄μ§€λ§Œ,

- λ°°μ—΄μ˜ 쀑간에 데이터λ₯Ό μΆ”κ°€ν•˜λ €λ©΄, 빈 자리λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œ λ‹€λ₯Έ 데이터듀을 λ³΅μ‚¬ν•΄μ„œ 이동해야 ν•œλ‹€. 

 

λ°°μ—΄μ˜ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄μ„œ λ§ν¬λ“œ 리슀트 LinkedList λΌλŠ” μžλ£Œκ΅¬μ‘°κ°€ κ³ μ•ˆλ˜μ—ˆλ‹€.

배열은 λͺ¨λ“  데이터가 μ—°μ†μ μœΌλ‘œ μ‘΄μž¬ν•˜μ§€λ§Œ λ§ν¬λ“œ λ¦¬μŠ€νŠΈλŠ” λΆˆμ—°μ†μ μœΌλ‘œ μ‘΄μž¬ν•˜λŠ” 데이터λ₯Ό μ„œλ‘œ μ—°κ²°ν•œ ν˜•νƒœλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€. 

 

λ§ν¬λ“œ λ¦¬μŠ€νŠΈμ—μ„œ μ‚­μ œλŠ” μ‚­μ œν•˜κ³ μž ν•˜λŠ” μš”μ†Œμ˜ μ΄μ „μš”μ†Œκ°€ μ‚­μ œν•˜κ³ μž ν•˜λŠ” μš”μ†Œμ˜ λ‹€μŒ μš”μ†Œλ₯Ό μ°Έμ‘°ν•˜λ„λ‘ λ³€κ²½ν•˜κΈ°λ§Œ ν•˜λ©΄ λœλ‹€. 

단 ν•˜λ‚˜μ˜ 참쑰만 λ³€κ²½ν•˜λ©΄ μ‚­μ œκ°€ 이루어진닀!

λ°°μ—΄μ²˜λŸΌ 데이터λ₯Ό μ΄λ™ν•˜κΈ° μœ„ν•΄ λ³΅μ‚¬ν•˜λŠ” 과정이 μ—†κΈ° λ•Œλ¬Έμ— μ²˜λ¦¬μ†λ„κ°€ 맀우 λΉ λ₯΄λ‹€. 

 

 

μƒˆλ‘œμš΄ 데이터λ₯Ό μΆ”κ°€ν•  λ•ŒλŠ” μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μƒμ„±ν•œ λ‹€μŒ μΆ”κ°€ν•˜κ³ μž ν•˜λŠ” μœ„μΉ˜μ˜ 이전 μš”μ†Œμ˜ μ°Έμ‘°λ₯Ό μƒˆλ‘œμš΄ μš”μ†Œμ— λŒ€ν•œ 참쑰둜 λ³€κ²½ν•΄μ£Όκ³ , μƒˆλ‘œμš΄ μš”μ†Œκ°€ κ·Έ λ‹€μŒ μš”μ†Œλ₯Ό μ°Έμ‘°ν•˜λ„λ‘ λ³€κ²½ν•˜κΈ°λ§Œ ν•˜λ©΄ λ˜λ―€λ‘œ μ²˜λ¦¬μ†λ„κ°€ 맀우 λΉ λ₯΄λ‹€. 

 

 

λ§ν¬λ“œ λ¦¬μŠ€νŠΈλŠ” 이동방ν–₯이 단방ν–₯이기 λ•Œλ¬Έμ— λ‹€μŒ μš”μ†Œμ— λŒ€ν•œ 접근은 μ‰½μ§€λ§Œ 이전 μš”μ†Œμ— λŒ€ν•œ 접근은 μ–΄λ ΅λ‹€.

-> 이점을 λ³΄μ™„ν•œ 것이 더블 λ§ν¬λ“œ 리슀트(이쀑 μ—°κ²° 리슀트, Doubly Liked List) 이닀. 

더블 λ§ν¬λ“œ λ¦¬μŠ€νŠΈλŠ” λ‹¨μˆœνžˆ λ§ν¬λ“œ λ¦¬μŠ€νŠΈμ— μ°Έμ‘°λ³€μˆ˜λ₯Ό ν•˜λ‚˜ 더 μΆ”κ°€ν•˜μ—¬ λ‹€μŒ μš”μ†Œμ— λŒ€ν•œ 참쑰뿐 μ•„λ‹ˆλΌ 이전 μš”μ†Œμ— λŒ€ν•œ μ°Έμ‘°κ°€ κ°€λŠ₯ν•˜λ„λ‘ ν–ˆμ„ 뿐, κ·Έ μ™Έμ—λŠ” λ§ν¬λ“œ λ¦¬μŠ€νŠΈμ™€ κ°™λ‹€. 

더블 λ§ν¬λ“œ λ¦¬μŠ€νŠΈλŠ” λ§ν¬λ“œ λ¦¬μŠ€νŠΈλ³΄λ‹€ 각 μš”μ†Œμ— λŒ€ν•œ μ ‘κ·Όκ³Ό 이동이 쉽기 λ•Œλ¬Έμ— λ§ν¬λ“œ λ¦¬μŠ€νŠΈλ³΄λ‹€ 더 많이 μ‚¬μš©ν•œλ‹€. 

 

더블 λ§ν¬λ“œ 리슀트의 접근성을 보닀 ν–₯μƒμ‹œν‚¨ 것이 더블 써큘러 λ§ν¬λ“œ 리슀트(이쀑 μ›ν˜• μ—°κ²°λ¦¬μŠ€νŠΈ, doubly circular linked list) 인데, λ‹¨μˆœνžˆ 더블 λ§ν¬λ“œ 리슀트의 첫번째 μš”μ†Œμ™€ λ§ˆμ§€λ§‰ μš”μ†Œλ₯Ό μ„œλ‘œ μ—°κ²°μ‹œν‚¨ 것이닀. 

 

1. 순차적으둜 μΆ”κ°€/μ‚­μ œ ν•˜λŠ” κ²½μš°μ—λŠ” ArrayList κ°€ LinkedList보닀 λΉ λ₯΄λ‹€.

2. 쀑간 데이터λ₯Ό μΆ”κ°€/μ‚­μ œ ν•˜λŠ” κ²½μš°μ—λŠ” LinkedListκ°€ ArrayList보닀 λΉ λ₯΄λ‹€.

 

 

μΈλ±μŠ€κ°€ n인 λ°μ΄ν„°μ˜ μ£Όμ†Œ = λ°°μ—΄μ˜ μ£Όμ†Œ + n * 데이터 νƒ€μž…μ˜ 크기 

-> λ°°μ—΄μ˜ κ²½μš°μ—λŠ” 만일 μΈλ±μŠ€κ°€ n인 μš”μ†Œμ˜ 값을 μ–»μ–΄μ˜€κ³ μž ν•˜λ©΄ λ‹¨μˆœνžˆ 이 식을 κ³„μ‚°ν•¨μœΌλ‘œμ¨ ν•΄κ²°λœλ‹€!!!

 

-> ArrayList λŠ” λ°°μ—΄κΈ°λ°˜(연속적), LinkedListλŠ” μ—°κ²°κΈ°λ°˜(λΆˆμ—°μ†μ ) 

 

 

 

4️⃣ Stackκ³Ό Queue

μŠ€νƒμ€ λ§ˆμ§€λ§‰μ— μ €μž₯ν•œ 데이터λ₯Ό κ°€μž₯ λ¨Όμ € κΊΌλ‚΄κ²Œ λ˜λŠ” LIFO(Last In First Out)으둜 λ˜μ–΄ 있고,

νλŠ” μ²˜μŒμ— μ €μž₯ν•œ 데이터λ₯Ό κ°€μž₯ λ¨Όμ € κΊΌλ‚΄κ²Œ λ˜λŠ” FIFO(First In First Out)ꡬ쑰둜 λ˜μ–΄ μžˆλ‹€. 

 

 

순차적으둜 데이터λ₯Ό μΆ”κ°€ν•˜κ³  μ‚­μ œν•˜λŠ” μŠ€νƒμ—λŠ” ArrayList와 같은 λ°°μ—΄ 기반의 μ»¬λ ‰μ…˜ ν΄λž˜μŠ€κ°€ μ ν•©ν•˜μ§€λ§Œ,

νλŠ” 데이터λ₯Ό κΊΌλ‚Ό λ•Œ 항상 첫번째 μ €μž₯된 데이터λ₯Ό μ‚­μ œν•˜κΈ° λ•Œλ¬Έμ— ArrayList 와 같은 λ°°μ—΄κΈ°λ°˜μ˜ μ»¬λ ‰μ…˜ 클래슀λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ 데이터λ₯Ό κΊΌλ‚Όλ•Œ λ§ˆλ‹€ 빈 곡간을 μ±„μš°κΈ° μœ„ν•΄μ„œ λ°μ΄ν„°μ˜ 볡사가 λ°œμƒν•˜λ―€λ‘œ λΉ„νš¨μœ¨μ μ΄λ‹€ 

κ·Έλž˜μ„œ νλŠ” ArrayList 보닀 λ°μ΄ν„°μ˜ μΆ”κ°€/μ‚­μ œκ°€ μ‰¬μš΄ LinkedList둜 κ΅¬ν˜„ν•˜λŠ” 것이 더 μ ν•©ν•˜λ‹€. 

 

-> μžλ°”μ—μ„œλŠ” μŠ€νƒμ„ Stack클래슀둜 κ΅¬ν˜„ν•˜μ—¬ μ œκ³΅ν•˜κ³  μžˆμ§€λ§Œ νλŠ” Queue μΈν„°νŽ˜μ΄μŠ€λ‘œλ§Œ μ •μ˜ν•΄ λ†“μ•˜μ„ 뿐 λ³„λ„μ˜ 클래슀λ₯Ό μ œκ³΅ν•˜κ³  μžˆμ§€ μ•Šλ‹€. 

λŒ€μ‹  Queue μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λ“€μ΄ μžˆμ–΄μ„œ 이 λ“€ 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λœλ‹€. 

Queue μΈν„°νŽ˜μ΄μŠ€μ— μ •μ˜λœ κΈ°λŠ₯을 μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄ 'All known Implementing Classes' 에 μ ν˜€μžˆλŠ” ν΄λž˜μŠ€λ“€ μ€‘μ—μ„œ μ λ‹Ήν•œ 것을 ν•˜λ‚˜ 골라 μž‘μ•„μ„œ Queue q = new LinkedList(); 와 같은 μ‹μœΌλ‘œ 객체λ₯Ό μƒμ„±ν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λœλ‹€. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90