본문 바로가기

기타/자료구조2

Hash란? Java로 HashTable 구현하기 Hash Java의 hashCode 메서드를 공부하던 중 깊이있게 이해하기 위해서는 먼저 Hash에 대해 이해할 필요성을 느끼고 Hash에 대해서 먼저 정리해보기로 한다. 그러면 Hash란 무엇일까? Hash는 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값을 말한다. 해시 함수(Hash Function)이란? 해시 함수는 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 변환시켜주는 함수를 말한다. 해싱 함수의 특징 중 하나로는 결과값이 정해진 길이로 나오는데 1글자를 입력하거나 100글자 이상을 입력하더라도 똑같은 정해진 길이의 결과값을 반환한다. 그렇다보니 입력값이 다른데 같은 출력값이 나오는 해시 충돌이 발생할 가능성이 아주 낮지만 있다. 따라서 해시 충돌을 .. 2023. 8. 31.
LinkedList(SinglyLinkedList vs DoublyLinkedList) LinkedList LinkedList란 Collection 프레임워크의 일부이며 java.util 패키지에 소속되어 있다. 이 클래스는 데이터가 연속된 위치에 저장되지 않고 모든 데이터가 데이터 영역과 주소 영역을 별도로 가지고 있스빈다. 데이터는 포인터와 주소를 사용하여 연결하고, 각 데이터는 노드라 불리며 배열에서 자주 삽입, 삭제가 이루어지는 경우 ArrayList 보다 선호된다. LinkedList의 종류와 속성 위에서 말했듯 Node는 Data를 담을 수 있는 변수와 다른 Node를 참조하는 2개의 변수로 이루어져 있다. 그리고 LinkedList는 Node의 구성에 따라 싱글 링크드리스트(Single-LinkedList), 더블 링크드리스트(Double-LinkedList)로 구분할 수 있다.. 2023. 7. 15.