equals

Java

HashMap 내부 동작 원리 완벽 정리 (hashCode, equals, 충돌 해결 쉽게 설명)

Java 공부를 하다 보면 거의 반드시 사용하게 되는 자료구조가 있다.👉 HashMap실무에서도 진짜 엄청 많이 사용한다.왜냐면:✔ 조회 빠름✔ 저장 빠름✔ key-value 구조 편리✔ 대부분 O(1) 성능 기대때문이다.근데 많은 사람들이 그냥 이렇게만 사용한다.Map map = new HashMap();그리고 내부 동작은 잘 모른다.하지만 면접이나 실무에서는:✔ hashCode 왜 쓰는지✔ bucket이 뭔지✔ 충돌은 어떻게 해결하는지✔ 왜 평균 O(1)인지✔ equals는 왜 필요한지이런 질문이 진짜 많이 나온다.오늘은 HashMap 내부 동작 원리를 초보자도 이해할 수 있게 쉽게 정리해보겠다.HashMap 이란?👉 Key-Value 형태로 데이터를 저장하는 자료구조예시:{ "name"..

Java

equals 와 hashCode 왜 같이 재정의할까? Java 핵심 개념 완벽 정리

Java 공부하다 보면 거의 반드시 듣게 되는 말이 있다.👉 equals와 hashCode는 같이 재정의해야 한다근데 처음 들으면 솔직히 이해가 잘 안 된다.왜냐면 대부분 이렇게 생각한다."equals만 비교하면 되는 거 아닌가?"실제로 equals만 오버라이딩해도:obj1.equals(obj2)는 정상 동작한다.근데 문제는:✔ HashSet✔ HashMap✔ HashTable✔ 중복 제거✔ key 비교같은 상황에서 발생한다.그리고 실무에서는:중복 데이터조회 실패contains 실패같은 이상한 버그가 생긴다.오늘은 equals와 hashCode를 왜 같이 재정의하는지 초보자도 이해할 수 있게 쉽게 정리해보겠다.먼저 equals란?👉 객체의 논리적 동등성 비교쉽게 말하면:내용이 같은지 비교한다.기본 e..

Java

HashSet 동작 원리 완벽 정리 (중복 제거, hashCode, equals, HashMap 관계까지)

자바 컬렉션 배우다 보면 꼭 등장하는 자료구조가 있다.👉 HashSet처음 보면 그냥:Set set = new HashSet();이렇게만 쓰고 넘어가기 쉽다.근데 내부 동작 원리를 이해하면:✔ 왜 중복이 제거되는지✔ hashCode()와 equals() 역할✔ 왜 순서가 없는지✔ HashMap과 관계이런 게 한 번에 이해된다.실무에서도 진짜 많이 쓰는 컬렉션이다.HashSet 이란?👉 중복을 허용하지 않는 Set 컬렉션예시:Set set = new HashSet();set.add("Java");set.add("Java");set.add("Spring");System.out.println(set);실행 결과[Java, Spring]👉 "Java" 중복 저장 안 됨HashSet 핵심 특징✔ 중복 불가✔..

Java

HashMap 충돌 해결 방식 완벽 정리 (Collision, LinkedList, Red-Black Tree까지 쉽게 설명)

자바 HashMap 공부하다 보면 거의 무조건 나오는 개념이 있다.👉 Hash Collision (해시 충돌)그리고 면접에서도 진짜 자주 물어본다."HashMap 충돌은 어떻게 해결하나요?"이 질문 하나로:HashMap 내부 구조 이해도자료구조 이해도Java 버전 이해도전부 확인 가능하다.오늘은 초보자도 이해할 수 있게HashMap 충돌 해결 방식을 진짜 쉽게 정리해보겠다.Hash 충돌(Collision) 이란?먼저 HashMap 동작부터 간단히 보자.map.put("apple", 1000);HashMap은:✔ key의 hashCode 계산✔ bucket 위치 결정✔ 해당 위치에 저장예시 느낌:hash % 배열크기근데 문제 발생 가능서로 다른 key인데:👉 같은 bucket 위치가 나올 수 있다예시:..

Coding_Slowly
'equals' 태그의 글 목록