πŸ–₯️ λ°±μ—”λ“œ/Java

[ch.11] μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬

OR15A 2023. 11. 14. 18:48



Properties 클래슀

  • HashTable을 상속받아 κ΅¬ν˜„ν•¨.
  • (String, String)의 ν˜•νƒœλ‘œ μ €μž₯ν•˜λŠ” λ‹¨μˆœν™”ν•œ μ»¬λ ‰μ…˜ 클래슀.
  • 주둜 Appν™˜κ²½μ„€μ •κ³Ό κ΄€λ ¨λœ 속성저μž₯에 μ‚¬μš©ν•¨.



Collections 클래슀

  • μ»¬λ ‰μ…˜μ˜ 동기화: ν•„μš”ν•œ κ²½μš°μ—λ§Œ 동기화 λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 됨: synchronized μ–΄μ©Œκ΅¬ ( )
  • 읽기 μ „μš© μ»¬λ ‰μ…˜μ„ λ§Œλ“€λ•ŒλŠ”: unmodifiable~
  • 단 ν•˜λ‚˜μ˜ 객체만 μ €μž₯ν•˜λŠ” 싱글톀 μ»¬λ ‰μ…˜μ„ λ§Œλ“€λ•ŒλŠ”: singleton μ–΄μ©Œκ΅¬( )
  • ν•œ μ’…λ₯˜(νƒ€μž…) 객체만 μ €μž₯ν•˜λŠ” μ»¬λ ‰μ…˜ λ§Œλ“€ λ•Œ: checked μ–΄μ©Œκ΅¬( )→μ§€λ„€λ¦­μŠ€κ°€ 더 κ°„λ‹¨ν•˜μ§€λ§Œ ν˜Έν™˜μ„± λ•Œλ¬Έμ— μ‚¬μš©ν•¨

2023.12.14 - [πŸ–‹οΈ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜/자료ꡬ쑰] - [λ©”μ„œλ“œ] Collections 클래슀 μ£Όμš” λ©”μ„œλ“œ



 

Arrays 클래슀

  • 배열을 λ‹€λ£¨λŠ”λ° μœ μš©ν•œ λ©”μ„œλ“œκ°€ μ •μ˜λ˜μ–΄μžˆμŒ
  • copyOf: λ°°μ—΄ 전체 볡사
  • copyOfRange: μ§€μ •λœ λ²”μœ„ 볡사(λ§ˆμ§€λ§‰μ€X)
  • fill: λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μ§€μ •λœ κ°’μœΌλ‘œ 채움
  • setAll(λ°°μ—΄,λžŒλ‹€μ‹): 배열을 μ±„μš°λŠ”λ° μ‚¬μš©ν•  ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€/λžŒλ‹€μ‹μ„ λ§€κ°œλ³€μˆ˜λ‘œ λ°›μŒ
  • sort: 배열을 μ •λ ¬ν•  λ•Œ
  • binarySearch: 배열에 μ €μž₯된 μš”μ†Œλ₯Ό 검색할 λ•Œ (정렬이 μ„ ν–‰λ˜μ–΄μ•Όν•¨)
  • equals: 배열에 μ €μž₯된 λͺ¨λ“  μš”μ†Œ 비ꡐ
  • deepEquals: 닀차원 λ°°μ—΄ 비ꡐ
  • asList: 배열을 List에 λ‹΄μ•„μ„œ λ°˜ν™˜ν•¨. λ§€κ°œλ³€μˆ˜κ°€ κ°€λ³€μΈμžλΌ κ·Έλƒ₯ μ €μž₯ν•  μš”μ†Œλ₯Ό λ‚˜μ—΄λ§Œ 해도 됨. λ°˜ν™˜ν•œ ListλŠ” 크기 변경이 λΆˆκ°€ν•¨(μ½κΈ°μ „μš©,얕은볡사) 크기 변경이 κ°€λŠ₯ν•œ List ν•„μš” μ‹œ ArrayList의 μƒμ„±μž λ§€κ°œλ³€μˆ˜λ‘œ 넣어주면됨
  • parallel: 보닀 λΉ λ₯Έκ²°κ³Όλ₯Ό μœ„ν•΄ μ—¬λŸ¬ μ“°λ ˆλ“œκ°€ μž‘μ—…μ„ λ‚˜λˆ”
  • spliterator: ν•˜λ‚˜μ΄ μž‘μ—…μ„ μ—¬λŸ¬ μž‘μ—…μœΌλ‘œ λ‚˜λˆ„λŠ” spliteratorλ₯Ό λ°˜ν™˜ν•¨
  • stream: μ»¬λ ‰μ…˜μ„ 슀트림으둜 λ³€ν™˜ν•¨



Comparable, Comparator μΈν„°νŽ˜μ΄μŠ€

  • μ»¬λ ‰μ…˜μ„ μ •λ ¬ν•˜λŠ”λ° ν•„μš”ν•œ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•¨.
  • “이 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•¨”=μ •λ ¬ κΈ°μ€€ μ œκ³΅ν•¨
  • κΈ°λ³Έ μ •λ ¬ κΈ°μ€€ κ΅¬ν˜„ μ‹œ: Comparable compareTo( obj 1 )
  • λ‹€λ₯Έ κΈ°μ€€μœΌλ‘œ μ •λ ¬ μ‹œ: Comparator compare( obj 1, obj 2 )
  • ComparableμΈν„°νŽ˜μ΄μŠ€: 객체 μ •λ ¬ μ‹œ μ‚¬μš©ν•¨. compareTo()λ©”μ„œλ“œλ₯Ό μ •μ˜ν•΄μ„œ κ΅¬ν˜„ν•¨. λ§€κ°œλ³€μˆ˜λ‘œ λΉ„κ΅λŒ€μƒ 객체λ₯Ό λ°›μ•„μ„œ ν˜„μž¬κ°μ²΄(this)와 비ꡐ함. thisκ°€ 크면 μ–‘μˆ˜, μž‘μœΌλ©΄ 음수, κ°™μœΌλ©΄0
  • ComparatorμΈν„°νŽ˜μ΄μŠ€: Comparableκ³Ό λ³„λ„λ‘œ μ‘΄μž¬ν•¨. 정렬기쀀을 μ œκ³΅ν•¨. compare()λ©”μ„œλ“œλ₯Ό μ •μ˜ν•΄μ„œ κ΅¬ν˜„ν•¨. 두 개의 λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„μ„œ 비ꡐ ν›„ μ™Όμͺ½μ΄ 크면 μ–‘μˆ˜, μž‘μœΌλ©΄ 음수, κ°™μœΌλ©΄0
  • Comparableλ₯Ό κ΅¬ν˜„ν•œ 클래슀의 객체λ₯Ό compare()λ©”μ„œλ“œμ˜ λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κ²¨μ€„ 경우, ν•΄λ‹Ή 객체λ₯Ό Comparable둜 ν˜•λ³€ν™˜ν•˜μ—¬ CompareTo()λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•¨.



ArrayDeque

  • μžλ°”μ˜ μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ œκ³΅λ˜λŠ” 클래슀.
  • 덱(deque)이라고 λΆˆλ¦¬λŠ” μ–‘λ°©ν–₯ 큐λ₯Ό κ΅¬ν˜„ν•œ 자료ꡬ쑰.
  • λ‚΄λΆ€μ μœΌλ‘œ 배열을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œλ₯Ό μ €μž₯ν•˜λ©°, 큐(Queue)와 μŠ€νƒ(Stack)의 κΈ°λŠ₯을 λͺ¨λ‘ μ œκ³΅ν•¨.
  • 크기 λ³€κ²½ κ°€λŠ₯: λ™μ μœΌλ‘œ 크기λ₯Ό μ‘°μ •ν•  수 있으며, ν•„μš”μ— 따라 μžλ™μœΌλ‘œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ή/ν•΄μ œν•¨.
  • μ–‘λ°©ν–₯ 큐: 큐의 μ•žκ³Ό λ’€μ—μ„œ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•  수 있음. 큐의 μ–‘ λμ—μ„œ λͺ¨λ‘ λΉ λ₯΄κ²Œ μš”μ†Œλ₯Ό 처리.
  • Null μš”μ†Œ ν—ˆμš©: null 값을 큐에 μ €μž₯ν•˜κ±°λ‚˜ null 값을 μ œκ±°ν•˜λŠ” 것이 κ°€λŠ₯.
  • μ„±λŠ₯: λ‚΄λΆ€μ μœΌλ‘œ 배열을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— 인덱슀λ₯Ό ν†΅ν•œ 접근이 λΉ λ₯΄κ³  효율적. 큐의 μ–‘ λμ—μ„œμ˜ μš”μ†Œ μΆ”κ°€/제거 연산이 λͺ¨λ‘ O(1)의 μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 가짐.

2023.11.30 - [πŸ–‹οΈ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜/자료ꡬ쑰] - [λ©”μ„œλ“œ] ArrayDeque 클래슀 λ©”μ„œλ“œ



 

Iterator, ListIterator, Enumeration

반볡자

  • Iterator: 각 μš”μ†Œμ— μ ‘κ·Όν•˜λŠ” κΈ°λŠ₯을 가진 μΈν„°νŽ˜μ΄μŠ€
  • Collection μΈν„°νŽ˜μ΄μŠ€μ—λŠ” iterator(κ΅¬ν˜„ μΈν„°νŽ˜μ΄μŠ€)λ₯Ό λ°˜ν™˜ν•˜λŠ” iterator( )λ©”μ„œλ“œ μ •μ˜ν•¨.
  • λ©”μ„œλ“œ: hasNext(), next(), remove()
  • MapμΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ μ»¬λ ‰μ…˜ ν΄λž˜μŠ€λŠ” iterator()의 μ§μ ‘ν˜ΈμΆœμ€ μ–΄λ ΅μ§€λ§Œ ketSet()μ΄λ‚˜ values()둜 각각의 ν‚€&값을 λ”°λ‘œ setν˜•νƒœλ‘œ μ–»μ–΄μ„œ μ‚¬μš©ν•  수 있음.(+ entrySet())



기타

  • Collection.sort(set); XXX
  • List μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ μ»¬λ Œμ…˜λ“€λ§Œ μ •λ ¬κ°€λŠ₯함.
  • List둜 λ³€ν™˜ν•΄μ„œ 정렬해야함.
  • List list = new LinkedList(set);
  • Collection.sort(list); OOO