Java实现HashMap
HashMap
HashMap由数组和链表组成,数组的每一个元素都是一个链表。
代码实现
import java.util.LinkedList;
public class mymap {
public mymap() {
super();
// TODO Auto-generated constructor stub
}
private class Entry {
public Object getKey() {
return key;
}
public void setKey(Object key) {
this.key = key;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
private Object key;
private Object value;
public Entry(Object key, Object value) {
super();
this.key = key;
this.value = value;
}
public Entry() {
super();
// TODO Auto-generated constructor stub
}
}
private LinkedList<Entry>[] arr = new LinkedList[999];
public void put(Object key, Object value) {
Entry e = new Entry(key, value);
int hashcode = key.hashCode() % 999;
if (arr[hashcode] == null) {
LinkedList list = new LinkedList();
arr[hashcode] = list;
list.add(e);
} else {
arr[hashcode].add(e);
}
}
public Object get(Object key) {
int hashcode = key.hashCode() % 999;
if (arr[hashcode] != null) {
for (Entry e : arr[hashcode]) {
if (e.getKey() == key) {
return e.getValue();
}
}
return null;
}else {
return null;
}
}
public static void main(String[] args) {
mymap map = new mymap();
map.put("q", "value");
System.out.println(map.get("ss"));
}
}