代码语言:javascript复制
/**
* 超级简单的数组加单链表实现Map
* @author jlj
*
*/
public class MyHashMap {
public MyList[] lists;
public int initSize = 10;
public MyHashMap(){
lists = new MyList[initSize];
}
public void addNode(Node node){
int id = node.id;
MyList list = lists[id % initSize];
if(list == null){
MyList l = new MyList();
l.headNode = node;
lists[id % 10] = l;
} else {
Node headNode = list.headNode;
while(headNode.next != null){
headNode = headNode.next;
}
headNode.next = node;
}
}
public static void main(String[] args) {
MyHashMap map = new MyHashMap();
map.addNode(new Node(1));
map.addNode(new Node(0));
map.addNode(new Node(3));
map.addNode(new Node(10));
System.out.println(map.lists.length);
System.out.println(map.lists[0]);
}
}
class Node{
public int id;
public Node next;
public Node(int id) {
super();
this.id = id;
}
@Override
public String toString() {
return "Node [id=" id ", next=" next "]";
}
}
class MyList{
public Node headNode;
@Override
public String toString() {
return "MyList [headNode=" headNode "]";
}
}