์ฝ๋
import java.util.LinkedList;
class MyHashMap {
// ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๋
ธ๋ ๊ฐ์ฒด ์์ฑ
private LinkedList<Entry>[] node;
// Entry -> ํค-๊ฐ ์์ ์ ์ฅํ๋ ํด๋์ค
private static class Entry {
int key;
int value;
Entry(int key, int value) {
this.key = key;
this.value = value;
}
}
public MyHashMap() {
node = new LinkedList[1000000];
}
public void put(int key, int value) {
int index = key % node.length;
if (node[index] == null) {
node[index] = new LinkedList<>();
}
for (Entry entry : node[index]) {
if (entry.key == key) {
// ํค๊ฐ ์กด์ฌํ๋ฉด ๊ฐ์ ์
๋ฐ์ดํธ
entry.value = value;
return;
}
}
node[index].add(new Entry(key, value)); // ์๋ก์ด ํค-๊ฐ ์์ ์ถ๊ฐ
}
public int get(int key) {
int index = key % node.length;
LinkedList<Entry> entries = node[index];
if (entries != null) {
for (Entry entry : entries) {
if (entry.key == key) {
return entry.value;
}
}
}
return -1; // ํค์ ๋ํ ๋งคํ์ด ์๋ ๊ฒฝ์ฐ
}
public void remove(int key) {
int index = key % node.length;
LinkedList<Entry> entries = node[index];
if (entries != null) {
entries.removeIf(entry -> entry.key == key);
}
}
}
Java
๋ณต์ฌ
put(key, value) : ํค, ๊ฐ์ ํด์๋งต์ ์ฝ์
. ๋ง์ฝ ํค๊ฐ ์กด์ฌํ๋ค๋ฉด ์
๋ฐ์ดํธ.
get(key) : ํค ๊ฐ์ ์กฐํ. ๋ง์ฝ ํค๊ฐ ์์ผ๋ฉด -1์ ๋ฆฌํด.
remove(key) ํค์ ํด๋นํ๋ ํค, ๊ฐ์ ํด์๋งต์์ ์ญ์
๋ฌธ์ ํด๊ฒฐ ์์ด๋์ด
๊ฐ๋จํ ํด์๋งต์ ๊ตฌํํ๋ ๋ฌธ์ ๋ค.