1. Hash 개념

2. Hash 기초 알고리즘
package ex17;
public class Ha01 {
public static int simpleHash(String key, int tableSize) {
int hash = 0;
for (char c : key.toCharArray()) { // 우변에 있는 배열의 크기만큼 반복
hash += c; // 각 문자의 ASCII 값을 더함
}
return hash % tableSize; // 테이블 크기로 나눈 나머지를 해시 값으로 사용
}
public static void main(String[] args) {
String key1 = "apple";
String key2 = "banana";
int tableSize = 10; // 해시 테이블 크기
System.out.println("apple의 해시 값: " + simpleHash(key1, tableSize));
System.out.println("banana의 해시 값: " + simpleHash(key2, tableSize));
}
}
package ex17;
class Animal {}
public class Ha02 {
public static void main(String[] args) {
Animal a1 = new Animal(); // Animal의 heap 시작 주소 번지를 hash
Animal a2 = new Animal(); // 다른 주소 번지니까 다른 값이 나와야 됨.
// 타입은 같지만 공간은 다름
System.out.println(a1.hashCode()); //Object가 들고 있는 함수
System.out.println(a2.hashCode());
}
}
Share article