관리 메뉴

λͺ©λ‘πŸͺJava (14)

ruriruriya

[Java] μžλ°” - HashMap μ΄λž€?

μžλ°”(Java)의 HashMap은 ν‚€(key)와 κ°’(value)의 쌍으둜 데이터λ₯Ό μ €μž₯ν•˜λŠ” μžλ£Œκ΅¬μ‘°λ‹€. 각 ν‚€λŠ” κ³ μœ ν•΄μ•Ό ν•˜λ©°, ν•˜λ‚˜μ˜ ν‚€λŠ” ν•˜λ‚˜μ˜ 값에 λ§€ν•‘λœλ‹€. HashMap을 μ‚¬μš©ν•˜λ©΄ ν‚€λ₯Ό 톡해 λΉ λ₯΄κ²Œ 데이터λ₯Ό 검색할 수 μžˆλŠ”λ° μ΄λŠ” λ‚΄λΆ€μ μœΌλ‘œ ν•΄μ‹œ ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. ν•΄μ‹œ ν…Œμ΄λΈ”μ€ 킀에 λŒ€ν•œ ν•΄μ‹œ ν•¨μˆ˜λ₯Ό μ μš©ν•˜μ—¬ λ°μ΄ν„°μ˜ μ €μž₯ μœ„μΉ˜λ₯Ό κ²°μ •ν•œλ‹€. HashMap의 μ£Όμš” νŠΉμ§• λΉ λ₯Έ 검색 속도: ν‚€λ₯Ό 톡해 값을 λΉ λ₯΄κ²Œ 검색할 수 μžˆλ‹€. ν‚€μ˜ κ³ μœ μ„±: 같은 ν‚€λ‘œ μ—¬λŸ¬ 값을 μ €μž₯ν•˜λ €κ³  ν•˜λ©΄, λ§ˆμ§€λ§‰μ— μ €μž₯ν•œ κ°’μœΌλ‘œ λŒ€μ²΄λœλ‹€. μˆœμ„œ 보μž₯ν•˜μ§€ μ•ŠμŒ: λ°μ΄ν„°μ˜ μ €μž₯ μˆœμ„œλ₯Ό 보μž₯ν•˜μ§€ μ•ŠλŠ”λ‹€. 즉, μž…λ ₯ μˆœμ„œλŒ€λ‘œ 데이터가 μ €μž₯λ˜μ§€ μ•Šμ„ 수 μžˆλ‹€. null κ°’ ν—ˆμš©: 킀와 κ°’μœΌλ‘œ null을 ν—ˆμš©ν•œλ‹€. ν•˜μ§€λ§Œ ..

πŸͺJava 2024. 2. 26. 20:18
[Java] μžλ°” μƒμ†μ˜ ν™œμš©κ³Ό μžμ‹ 클래슀의 κΈ°λŠ₯ ν™•μž₯

μžλ°”μ—μ„œ 상속(Inheritance)은 ν•œ ν΄λž˜μŠ€κ°€ λ‹€λ₯Έ 클래슀의 속성과 λ©”μ„œλ“œλ₯Ό κ°€μ Έλ‹€ μ“Έ 수 μžˆλŠ” κΈ°λŠ₯을 μ˜λ―Έν•œλ‹€. 이λ₯Ό 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고, 클래슀 κ°„μ˜ 관계λ₯Ό ꡬ쑰화할 수 μžˆλ‹€. 상속은 λΆ€λͺ¨ 클래슀(Parent Class λ˜λŠ” Super Class)와 μžμ‹ 클래슀(Child Class λ˜λŠ” Sub Class) κ°„μ˜ 관계λ₯Ό μ •μ˜ν•˜λŠ” 데 μ‚¬μš©λœλ‹€. μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 λͺ¨λ“  속성과 λ©”μ„œλ“œλ₯Ό μƒμ†λ°›λŠ”λ‹€. μ΄λ ‡κ²Œ 상속받은 λ©”μ„œλ“œλ‚˜ 속성을 μžμ‹ ν΄λž˜μŠ€μ—μ„œ λ”°λ‘œ μž¬μ •μ˜(Override)ν•  μˆ˜λ„ 있고, μƒˆλ‘œμš΄ λ©”μ„œλ“œλ‚˜ 속성을 μΆ”κ°€ν•  μˆ˜λ„ μžˆλ‹€. 이λ₯Ό 톡해 μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 κΈ°λŠ₯을 ν™•μž₯ν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆλ‹€. // λΆ€λͺ¨ 클래슀 μ •μ˜ class Animal { public void s..

πŸͺJava 2024. 2. 23. 09:42
[Java] μžλ°” 클래슀, 객체, μΈμŠ€ν„΄μŠ€μ˜ κ°œλ…

μžλ°”(Java)μ—μ„œ 클래슀(Class)λŠ” 객체(Object)λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν‹€ λ˜λŠ” 섀계도닀. ν΄λž˜μŠ€λŠ” 객체가 κ°€μ Έμ•Ό ν•  속성(Attribute)κ³Ό λ©”μ„œλ“œ(Method)λ₯Ό μ •μ˜ν•œλ‹€. 속성은 객체의 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λ©°, λ©”μ„œλ“œλŠ” 객체가 μˆ˜ν–‰ν•  수 μžˆλŠ” λ™μž‘μ„ μ •μ˜ν•œλ‹€. μ΄λŸ¬ν•œ 클래슀의 μ •μ˜λ₯Ό λ°”νƒ•μœΌλ‘œ μ‹€μ œλ‘œ λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ μ‚¬μš©λ  λ•Œ 그것이 객체이닀. 예λ₯Ό λ“€μ–΄, μžλ™μ°¨λ₯Ό 클래슀둜 λΉ„μœ ν•΄λ³΄μž. μžλ™μ°¨ ν΄λž˜μŠ€λŠ” λΈŒλžœλ“œ, 색상, 속도 λ“±κ³Ό 같은 속성을 가지며 μ£Όν–‰, 멈좀, 속도 λ³€κ²½ λ“±κ³Ό 같은 λ©”μ„œλ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€. 이 클래슀λ₯Ό λ°”νƒ•μœΌλ‘œ μƒμ„±λœ μ‹€μ œ μžλ™μ°¨ 객체듀은 각각 λ‹€λ₯Έ λΈŒλžœλ“œ, 색상, 속도λ₯Ό κ°€μ§€κ²Œ λœλ‹€. 그리고 객체(Object)와 μΈμŠ€ν„΄μŠ€(Instance)의 μ°¨μ΄λŠ” 맀우 λ―Έλ¬˜ν•˜μ§€λ§Œ, κ°μ²΄λŠ” 클래슀..

πŸͺJava 2024. 2. 22. 09:53
[Java] μžλ°” μ˜€λ²„λ‘œλ”© vs μ˜€λ²„λΌμ΄λ”© - μ½”λ“œ 닀쀑 ν™œμš© 및 상속 ꡬ쑰 이해

μžλ°” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ˜€λ²„λ‘œλ”©(Overloading)κ³Ό μ˜€λ²„λΌμ΄λ”©(Overriding)은 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ˜ μ€‘μš”ν•œ κ°œλ…μ΄λ‹€. λ‘˜ λ‹€ λ‹€ν˜•μ„±(polymorphism)을 κ΅¬ν˜„ν•˜λŠ” 방법 쀑 ν•˜λ‚˜μ΄μ§€λ§Œ μ„œλ‘œ λ‹€λ₯Έ λͺ©μ κ³Ό λ™μž‘μ„ κ°–κ³  μžˆλ‹€. 1. μ˜€λ²„λ‘œλ”©(Overloading) λ©”μ†Œλ“œλ‚˜ μƒμ„±μžμ˜ 이름은 κ°™μ§€λ§Œ, λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…, 개수, μˆœμ„œκ°€ λ‹€λ₯Έ μ—¬λŸ¬ 버전을 μ •μ˜ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.μ˜€λ²„λ‘œλ”©μ„ μ‚¬μš©ν•˜λ©΄ 같은 μ΄λ¦„μ˜ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜μ—¬ λ‹€μ–‘ν•œ 상황에 맞게 ν˜ΈμΆœν•  수 μžˆλ‹€.μ»΄νŒŒμΌλŸ¬κ°€ λ©”μ†Œλ“œ 호좜 μ‹œ 인자의 νƒ€μž…μ„ 보고 μ μ ˆν•œ λ²„μ „μ˜ λ©”μ†Œλ“œλ₯Ό κ²°μ •ν•œλ‹€.μƒμ„±μž μ˜€λ²„λ‘œλ”©public class Person { private String name; private int age; // κΈ°λ³Έ μƒμ„±μž public Pers..

πŸͺJava 2024. 2. 21. 17:03