手写一个hashMap吧
时间: 2023-03-13 13:38:00 浏览: 9
好的,我来为你手写一个简单的 HashMap。
首先,我们需要定义 HashMap 的数据结构。我们可以使用一个类来表示一个键值对:
```
class Pair {
int key;
int value;
Pair(int key, int value) {
this.key = key;
this.value = value;
}
}
```
然后我们可以使用一个数组来存储这些键值对。每个数组元素都是一个链表,用于存储冲突的键值对:
```
class HashMap {
List<Pair>[] data;
int size;
HashMap(int size) {
this.size = size;
this.data = new ArrayList[size];
}
}
```
然后我们可以实现 put 方法来将键值对插入到 HashMap 中:
```
void put(int key, int value) {
int index = key % size;
if (data[index] == null) {
data[index] = new ArrayList<>();
}
List<Pair> list = data[index];
for (Pair pair : list) {
if (pair.key == key) {
pair.value = value;
return;
}
}
list.add(new Pair(key, value));
}
```
最后,我们可以实现 get 方法来从 HashMap 中获取一个值:
```
int get(int key) {
int index = key % size;
if (data[index] == null) {
return -1;
}
List<Pair> list = data[index];
for (Pair pair : list) {
if (pair.key == key) {
return pair.value;
}
}
return -1;
}
```
这就是一个简单的 HashMap 的实现。希望这对你有帮助!
阅读全文