μƒˆμ†Œμ‹

Languages/JAVA

[Java] μ»¬λ ‰μ…˜(Collection)

  • -
λ°˜μ‘ν˜•

μ˜€λŠ˜μ€ java μ»¬λ ‰μ…˜μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ³ 

λͺ‡κ°€μ§€ μ‹€μŠ΅μ„ ν•΄λ³Όκ»˜μš”

λ°”λ‘œ μ‹œμž‘ν•©λ‹ˆλ‹€!


 

μ»¬λ ‰μ…˜(Collection)

μ»¬λ ‰μ…˜μ΄λž€ μžλ°” μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬μ˜ 집합 클래슀 및 μΈν„°νŽ˜μ΄μŠ€ 곡톡 μž¬μ‚¬μš© μˆ˜μ§‘μ„ κ΅¬ν˜„ν•˜λŠ” 데이터 ꡬ쑰λ₯Ό λ§ν•©λ‹ˆλ‹€. ν”„λ ˆμž„μ›Œν¬λΌκ³ λ„ ν•˜λ©°, 라이브러리 λ°©μ‹μœΌλ‘œ μž‘λ™ ν•©λ‹ˆλ‹€.

μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬λŠ” λ‹€μ–‘ν•œ μ»¬λ ‰μ…˜κ³Ό, 이λ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ 클래슀λ₯Ό μ •μ˜ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€.

 

μ»¬λ ‰μ…˜κ³Ό λ°°μ—΄μ˜ 차이

μ»¬λ ‰μ…˜κ³Ό 배열은 κ°œμ²΄μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό λ³΄μœ ν•˜κ³  그룹으둜 관리 ν•  수 β€‹β€‹μžˆλ‹€λŠ” μ μ—μ„œ λΉ„μŠ·ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ°°μ—΄κ³Ό 달리 μ»¬λ ‰μ…˜μ— μΈμŠ€ν„΄μŠ€ν™” μ‹œ νŠΉμ • μš©λŸ‰μ„ ν• λ‹Ή ν•  ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€. κ°œμ²΄λ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ 제거 ν•  λ•Œ μ»¬λ ‰μ…˜μ˜ 크기가 μžλ™μœΌλ‘œ μ¦κ°€ν•˜κ±°λ‚˜ μΆ•μ†Œ 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ»¬λ ‰μ…˜μ€ int, long λ˜λŠ” doubleκ³Ό 같은 κΈ°λ³Έ 데이터 μœ ν˜• μš”μ†Œ (κΈ°λ³Έ μœ ν˜•)λ₯Ό 보유 ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€μ‹  Integer, Long λ˜λŠ” Doubleκ³Ό 같은 래퍼 클래슀λ₯Ό λ³΄μœ ν•©λ‹ˆλ‹€.

 

사전적 μ •μ˜λ‘œ μ„€λͺ…λ“œλ¦¬λ‹ˆ 이해가 잘 μ•ˆλ˜μ‹œμ£ ? κ·Έλž˜μ„œ μ‰½κ²Œ μ •λ¦¬ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

μ•„λž˜μ˜ κ·Έλ¦Όκ³Ό, νŠΉμ§•μ„ μ‚΄νŽ΄λ΄…μ‹œλ‹€!

 

 

좜처 : 학ꡐ ꡐ재 ppt자료

 

 

μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬ 상속ꡬ쑰

좜처 :https://gangnam-americano.tistory.com/41

 

Collection μΈν„°νŽ˜μ΄μŠ€λŠ” List, Set, Queue둜 크게 3가지 μƒμœ„ μΈν„°νŽ˜μ΄μŠ€λ‘œ λΆ„λ₯˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Map의 경우 Collection μΈν„°νŽ˜μ΄μŠ€λ₯Ό 상속받고 μžˆμ§€ μ•Šμ§€λ§Œ, Collection으둜 λΆ„λ₯˜λ©λ‹ˆλ‹€.

 

μ»¬λ ‰μ…˜ ν”„λ ˆμž„ μ›Œν¬

값을 λ‹΄μ„ μˆ˜ μžˆλŠ” κ·Έλ¦‡(μ»¨ν…Œμ΄λ„ˆ), κ°€λ³€ κ°μ²΄λ“€μ˜ μ €μž₯μ†Œ

 

μžμ„Ένžˆ 보기 β–Όβ–Όβ–Ό

더보기


1. List : μˆœμ„œκ°€ μ€‘μš”ν•˜λ©° λ°μ΄ν„°μ˜ μ€‘볡 ν—ˆμš©ν•œλ‹€. 
   add():μΆ”κ°€, get():좜λ ₯, set():λ³€κ²½, remove():μ‚­μ œ 
  1) Vector : λ‹¨μΌμŠ€λ ˆλ“œμ— μžλ™μœΌλ‘œ λ™κΈ°ν™” 
  2) ArrayList : λ°°μ—΄κΈ°λ°˜μœΌλ‘œ λΉ λ₯Έμ°Έμ‘°κ°€ λ˜μ–΄ μ„±λŠ₯ μš°μˆ˜ν•˜λ‚˜ μ €μž₯μ†Œ λŠ˜λ¦¬λ©΄ λ§Žμ€ μ‹œκ°„ μ†Œμš” 
  3) Stack : LIFO 
  4) LinkedList : μ €μž₯μ†Œ λŠ˜λ¦¬λ©΄ κ³Όμ •μ΄ κ°„λ‹¨ν•˜κ³  μΆ”κ°€,μ‚­μ œκ°€ κ°„λ‹¨ν•˜λ‚˜ λ°μ΄ν„° μ°Έμ‘°κ°€ λ‹€μ†ŒλΆˆνŽΈ   

2. Set : λ°μ΄ν„°μ˜ μ§‘ν•©μœΌλ‘œ μˆœμ„œκ°€ μ€‘μš”ν•˜μ§€ μ•Šκ³  λ°μ΄ν„°μ˜ μ€‘볡 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 
  1) HashSet : λ°μ΄ν„°κ°€ μž…λ ₯된 μˆœμ„œλ‘œ μ €μž₯ 
  2) TreeSet : λ°μ΄ν„°λ₯Ό μ •λ ¬λœ μˆœμ„œλ‘œ μ €μž₯. νŠΈλ¦¬μžλ£Œ κ΅¬μ‘°κΈ°λ°˜. μ€‘볡저μž₯μ•ŠλŠ”λ‹€. 

3. Map : Key와 Valueκ°€ ν•˜λ‚˜μ˜ μŒμœΌλ‘œ μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”. ν‚€λŠ” μ€‘λ³΅μ•ˆλ˜κ³  κ°’은 μ€‘볡 ν—ˆμš©ν•œλ‹€. 
  1) HashTable : key, value의 ν˜•νƒœλ‘œ null을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. 
* 2) HashMap : key,value μ˜ ν˜•νƒœλ‘œ key쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€. nullν—ˆμš©ν•œλ‹€. 
  3) TreeMap : key, value의 ν˜•νƒœλ‘œ key값듀에 λŒ€ν•œ μ •λ ¬μ΄ μ΄λ£¨μ–΄μ§„λ‹€. 

4. Iterator : λ°˜λ³΅μž  - hasNext(), next(), remove() λ©”μ†Œλ“œ 
   μ‚¬μš©μ΄μœ  : μ»¬λ ‰μ…˜ ν΄λž˜μŠ€μ˜ μ’…λ₯˜μ— μƒκ΄€μ—†μ΄ λ™μΌν•œ ν˜•νƒœμ˜ λ°μ΄ν„° μ°Έμ‘°λ°©μ‹μ„ μœ μ§€ν•˜μ—¬  
   μ»¬λ ‰μ…˜ ν΄λž˜μŠ€μ˜ κ΅μ²΄μ— ν° μ˜ν–₯이 μ—†λ‹€. 

<Generic>
클래슀 λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•  λ°μ΄ν„° νƒ€μž…을 μ™ΈλΆ€μ—μ„œ μ§€μ •ν•˜λŠ” λ°©λ²•. μ½”λ“œ κ°„κ²° 
ν˜•μ‹ : class Demo 

  public T Data; 

Demo  d1=new Demo(); 
Demo  d2=new Demo();

 

 

μ œλ„€λ¦­(generics)

μ œλ„€λ¦­μ΄λž€ νŠΉμ • νƒ€μž…λ§Œ 닀루지 μ•Šκ³ , λͺ¨λ“  μ’…λ₯˜μ˜ 데이터 νƒ€μž…μ„ λ‹€λ£° 수 μžˆλ„λ‘ μΌλ°˜ν™”λœ νƒ€μž… 맀개 λ³€μˆ˜λ‘œ ν΄λž˜μŠ€λ‚˜ λ©”μ†Œλ“œλ₯Ό μž‘μ„±ν•˜λŠ” 기법(C++의 ν…œν”Œλ¦Ώκ³Ό λ™μΌν•˜λ‹€.)

μ»¬λ ‰μ…˜μ€ μ œλ„€λ¦­ κΈ°λ²•μœΌλ‘œ κ΅¬ν˜„λ˜μ—ˆλ‹€.

μ»¬λ ‰μ…˜μ˜ μš”μ†ŒλŠ” 객체만 κ°€λŠ₯ν•˜λ‹€. (int, char, double λ“±.. κΈ°λ³Έ νƒ€μž… λΆˆκ°€λŠ₯)

 

* μ •μˆ˜ μŠ€νƒ => μ •μˆ˜λ§Œ μ €μž₯, λ¬Έμžμ—΄ μŠ€νƒ => λ¬Έμžμ—΄ μ €μž₯ ===>>νŠΉμ • νƒ€μž…μœΌλ‘œ ꡬ체화

μ œλ„€λ¦­ μŠ€νƒ => λͺ¨λ“  μ’…λ₯˜ κ°€λŠ₯.

* <E>, <K>, <V> : νƒ€μž…λ§€κ°œ λ³€μˆ˜ μ‚¬μš©

 

Vector<E> μ•Œμ•„λ³΄κΈ°.

- java.util.Vector

<E>μ—μ„œ EλŒ€μ‹  μš”μ†Œλ‘œ μ‚¬μš©ν•  νŠΉμ • νƒ€μž…μœΌλ‘œ ꡬ체화

μ—¬λŸ¬ 객체듀을 μ‚½μž…, μ‚­μ œ, κ²€μƒ‰ν•˜λŠ” μ»¨ν…Œμ΄λ„ˆ ν΄λž˜μŠ€μž„.

 

1. μ½”λ“œ 보기

μ΄λ ‡κ²Œ μ—¬λŸ¬κ°€μ§€ μ½”λ“œ(κ΅¬ν˜„ λ˜μ–΄μžˆλŠ” λ©”μ†Œλ“œ)λ₯Ό μ‹€μŠ΅ν•΄λ΄€λŠ”λ°, μ„€λͺ…은 μ£Όμ„μœΌλ‘œ μ μ–΄λ†“μ•˜μœΌλ‹ˆ μ°Έκ³ ν•΄μ£Όμ„Έμš”.

 

 

2. κ²°κ³Ό

 

 

3. Vector<E> 클래슀의 μ£Όμš” λ©”μ†Œλ“œ

λ‚˜λ¨Έμ§€λŠ” μ΄μ–΄μ„œ λ‹€μŒ μ‹œκ°„μ— μ˜¬λ €λ³΄λ„λ‘ ν• κ»˜μš”

λ„ˆλ¬΄ λ²”μœ„κ°€ κ΄‘λ²”μœ„(?) ν•΄μ„œ

천천히 μ΄μ–΄μ„œ μ¨λ‚˜κ°€λ„λ‘ ^_^ν• κ»˜μš”~

그럼 λ‹€λ“€ 열곡 ν•˜μ„Έμš” γ…Žγ…Ž

λ°˜μ‘ν˜•

'Languages > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] μžλ°” API클래슀  (3) 2020.04.25
[Java] Collection-list예제  (0) 2020.04.25
[JavaFx] 블둝 μƒμ„±ν•˜κΈ°  (0) 2020.04.20
[Java] bank μ•Œκ³ λ¦¬μ¦˜  (0) 2020.04.15
Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.