给我一个java语言的哈希表代码
时间: 2023-03-11 22:59:16 浏览: 70
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("Key1","Value1");
hm.put("Key2","Value2");
hm.put("Key3","Value3");
hm.put("Key4","Value4");
相关问题
提供哈希表代码示例java
当然,我可以给你提供一个简单的哈希表代码示例,使用Java语言实现。以下是一个基本的哈希表类的示例代码:
```java
import java.util.ArrayList;
import java.util.LinkedList;
// 哈希表类
public class HashTable<K, V> {
private ArrayList<LinkedList<Entry<K, V>>> buckets;
private int capacity;
private int size;
// 哈希表的构造函数
public HashTable(int capacity) {
this.capacity = capacity;
this.size = 0;
this.buckets = new ArrayList<>(capacity);
for (int i = 0; i < capacity; i++) {
buckets.add(new LinkedList<>());
}
}
// 哈希表的put方法
public void put(K key, V value) {
int index = getIndex(key);
LinkedList<Entry<K, V>> bucket = buckets.get(index);
for (Entry<K, V> entry : bucket) {
if (entry.getKey().equals(key)) {
entry.setValue(value);
return;
}
}
bucket.add(new Entry<>(key, value));
size++;
}
// 哈希表的get方法
public V get(K key) {
int index = getIndex(key);
LinkedList<Entry<K, V>> bucket = buckets.get(index);
for (Entry<K, V> entry : bucket) {
if (entry.getKey().equals(key)) {
return entry.getValue(); }
}
return null;
}
// 哈希表的remove方法
public void remove(K key) {
int index = getIndex(key);
LinkedList<Entry<K, V>> bucket = buckets.get(index);
for (Entry<K, V> entry : bucket) {
if (entry.getKey().equals(key)) {
bucket.remove(entry);
size--;
return;
}
}
}
// 哈希表的大小
public int size() {
return size;
}
// 获取键的哈希值
private int getHash(K key) {
return key.hashCode();
}
// 根据键的哈希值计算索引
private int getIndex(K key) {
int hash = getHash(key);
return hash % capacity;
}
// 哈希表的Entry类
private static class Entry<K, V> {
private K key;
private V value;
public Entry(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
}
}
```
这是一个简单的哈希表实现,其中使用了链地址法解决哈希冲突。你可以使用`put`方法将键值对存储到哈希表中,使用`get`方法根据键获取对应的值,使用`remove`方法删除指定键的键值对,使用`size`方法获取哈希表的大小。
用java语言遍历哈希表
好的,您可以使用 HashMap 类在 Java 中创建哈希表。下面是遍历哈希表的示例代码:
```java
import java.util.HashMap;
import java.util.Map;
public class HashMapTraversal {
public static void main(String[] args) {
// 创建一个包含键值对的哈希表
Map<String, String> hashMap = new HashMap<>();
hashMap.put("key1", "value1");
hashMap.put("key2", "value2");
hashMap.put("key3", "value3");
// 遍历哈希表并打印键值对
for (Map.Entry item : hashMap.entrySet()) {
System.out.println(item.getKey() + " : " + item.getValue());
}
}
}
```
在上述代码中,使用 HashMap 类创建一个包含三个键值对的哈希表。然后,使用 for 循环遍历哈希表并打印每个键值对的值。输出将是以下内容:
```
key1 : value1
key2 : value2
key3 : value3
```