package 自定义HashMap;
import java.util.HashMap;
public class MyHashMap<K,V>{
private static Integer CAPACITY=8;
private int size=0;
public MyHashMap() {
this.table = new Entry[CAPACITY];
}
private Entry<K,V>[] table;
class Entry<K,V>{
private K k;
private V v;
private Entry<K,V> next;
public Entry(K k, V v, Entry<K, V> next) {
this.k = k;
this.v = v;
this.next = next;
}
}
public int size(){
return size;
}
public V get(K key){
int hashCode=key.hashCode();
int index=hashCode%table.length;
for (Entry<K,V> entry=table[index];entry!=null;entry=entry.next){
if(entry.k.equals(key)){
return entry.v;
}
}
return null;
}
public V put(K key,V value){
int hashCode=key.hashCode();
int index=hashCode%table.length;
for (Entry<K,V> entry=table[index];entry!=null;entry=entry.next){
if(entry.k.equals(key)){
V oldValue=entry.v;
entry.v=value;
return oldValue;
}
}
addEntry(key,value,index);
return null;
}
private void addEntry(K key, V value, int index) {
table[index]=new Entry<>(key,value,table[index]);
size++;
}
public static void main(String[] args) {
MyHashMap<String,String> map=new MyHashMap<>();
for (int i=0;i<10;i++){
map.put("key"+i,"value"+i);
}
System.out.println(map.toString());
}
}
网友评论