본문 바로가기

HashMap2

『Java』 HashMap은 어떤 원리로 동작하는가 HashMap은 자주 사용하는 컬렉션 중 하나다. 키와 값을 쌍으로 저장하며 데이터의 삽입, 삭제, 검색이 평균적으로 O(1) 시간 복잡도를 갖는 자료구조다. HashMap의 내부 동작 원리와 해시 충돌 해결 방법에 대해 알아보자.   HashMap 개념HashMap은 키(Key)와 값(Value)이 1:1로 매핑되는 자료구조다. 여기서 키는 중복을 허용하지 않지만 값은 중복될 수 있다. 내부적으로 배열을 사용하며 각 배열의 요소를 버킷(bucket)이라고 한다.키를 해시 함수에 통과시켜 해시 값을 얻고 해시 값을 이용해 버킷 배열의 인덱스를 결정한다.일반적으로 해시 함수는 hashcode() % M 형태로 계산되기에 서로 다른 키가 동일한 인덱스를 가리키는 해시 충돌(hash collision)이 발생.. 2024. 11. 22.
『Java』 동일성 (Identity) vs 동등성 (Equality) 자바에서 객체를 비교할 땐 동일성과 동등성 개념이 필요하다. 동일성 (Identity)메모리 내 주소가 같은지 비교한다. 자바에서는 == 연산자를 사용하여 동일성 비교한다.동등성 (Equality)값이 동등한 지 비교한다. 자바에서는 equals() 메서드를 재정의하여 동등성 비교한다.  자동차 클래스 비교하기  Car 클래스는 name과 position 상태를 가진다. 여기서 같은 이름의 자동차는 존재할 수 없다는 요구사항이 있다고 가정하자. 따라서 이름이 같은 두 Car 객체는 동등한 객체로 취급되어야 한다.   equals() 메서드 재정의this == o로 메모리 주소가 같은지 확인한다.o가 null이거나 클래스 타입이 다르면 false를 반환한다.name 필드의 값이 같은지를 비교하여 논리적 동.. 2024. 11. 4.