λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

STUDY/JAVA

JAVA - Setμ»¬λ ‰μ…˜ μΈν„°νŽ˜μ΄μŠ€ /HashSet 클래슀

λ°˜μ‘ν˜•
* 기본 자료 ꡬ쑰
List > μˆœμ„œ o [ ]
Set > μˆœμ„œ x [ ] ( )
Map == Dictionary { } 

 

1. Set μ»¬λ ‰μ…˜ μΈν„°νŽ˜μ΄μŠ€

   μ§‘ν•©μ˜ κ°œλ… / 인덱슀 정보 포함 x => μ›μ†Œ 쀑 νŠΉμ • μœ„μΉ˜ 값을 κΊΌλ‚Ό 수 x

   (λ˜‘κ°™μ€ 값을 뢈러올 수 μ—†μŒ = 쀑볡저μž₯ λΆˆκ°€ / null값도 ν•œ 개만 포함 κ°€λŠ₯)

   μ €μž₯λ˜λŠ” μˆœμ„œμ— 상관없이 μ €μž₯됨(μ €μž₯μˆœμ„œ νŒŒμ•… μ•ˆλ¨)

   μ €μž₯된 μˆœμ„œμ™€ 좜λ ₯ μˆœμ„œλŠ” λ‹€λ₯Ό 수 o

   get()λ©”μ„œλ“œ 제곡 x

 

2. Set μ»¬λ ‰μ…˜ μΈν„°νŽ˜μ΄μŠ€ method

                   * λ°°μ—΄ μ „ν™˜ <- μˆœμ„œκ°€ λΉ λ₯΄λ‹ˆκΉŒ μ „ν™˜ν•΄μ£ΌλŠ”κ²Œ μ’‹μŒ

 

3. HashSet

  μˆœμ„œκ°€ x → 데이터 ꡬ별할 indexκ°€ μ—†κ³ , 쀑볡이 ν—ˆμš© x

  효율적인 쀑볡 데이터 제거 μˆ˜λ‹¨

  h(κ°’)  --> μœ μΌν•œ κ°’
  "aaa"  --> 15 (μˆ«μžλ‘œμ„œμ˜ μ˜λ―ΈλŠ” 없어지고 μœ μΌν•œ 값이 됨)
  "bbb" --> 37
-----------------
  "aaa" --> 15

  μžλ°”μ—μ„œ ν•΄μ‰¬μ½”λ“œλŠ” 객체가 μ €μž₯된 λ²ˆμ§€μ™€ μ—°κ΄€λœ κ°’(μ‹€μ œ λ²ˆμ§€μ™€λŠ” 닀름)

  값이 κ°™μ€μ§€λ§Œ 확인 κ°€λŠ₯함 (κ·Έ 값이 λ­”μ§€λŠ” 확인x)   -- μ•”ν˜Έν™”

  ν•΄μ‹œν•¨μˆ˜λŠ” ν•˜λ‚˜μ˜ 주어진 좜λ ₯에 λŒ€ν•˜μ—¬

     μ΄ 좜λ ₯으둜 μ‚¬μƒμ‹œν‚€λŠ” ν•˜λ‚˜μ˜ μž…λ ₯을 μ°ΎλŠ” 것이 κ³„μ‚°μ μœΌλ‘œ λΆˆκ°€λŠ₯&

     ν•˜λ‚˜μ˜ 주어진 μž…λ ₯에 λŒ€ν•΄ 같은 좜λ ₯으둜 μ‚¬μƒμ‹œν‚€λŠ” 또 λ‹€λ₯Έ μž…λ ₯을 μ°ΎλŠ” 것이 κ³„μ‚°μ μœΌλ‘œ λΆˆκ°€λŠ₯

     => 두가지 μ„±μ§ˆμ„ λ§Œμ‘±ν•˜λ©΄μ„œ μž„μ˜μ˜ λΉ„νŠΈμ—΄μ„ κ³ μ •λœ 길이의 λΉ„νŠΈμ—΄λ‘œ μ‚¬μƒμ‹œν‚€λŠ” ν•¨μˆ˜

 

EX)

   μ€‘볡 데이터 제거

   (HashSet에 λ„£μ—ˆλ‹€ λΉΌλ©΄ 쀑볡 데이터 제거됨)

정렬됨 → μ €μž₯λ˜λŠ” μˆœμ„œμ— 상관없이 μ €μž₯됨(μ €μž₯μˆœμ„œ νŒŒμ•… μ•ˆλ¨)

             μ €μž₯된 μˆœμ„œμ™€ 좜λ ₯ μˆœμ„œλŠ” λ‹€λ₯Ό 수 o

 

λ°˜μ‘ν˜•