首页 > 技术文章 > 超级简单的数组加单链表实现Map

theone67 2019-09-16 23:31 原文

/**
 * 超级简单的数组加单链表实现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 + "]";
	}
	
	
}

推荐阅读