Map的底层实现是数组加链表
配合LinkedList看吧http://blog.csdn.net/jav_zhangwei/article/details/75577972
package tk.zhangwei.collection;
import java.util.LinkedList;
/***
* map的底层实现是:数组加链表
* @author zw
*
*/
public class SxtMap02 {
LinkedList[] arr = new LinkedList[999];
int size;
public void put(Object key,Object value){
SxtEntry e = new SxtEntry(key, value);
int a = key.hashCode()%999;
if(arr[a] == null){
LinkedList list = new LinkedList();
arr[a] = list;
list.add(e);
}else{
LinkedList list = arr[a];
for(int i =0;i<list.size();i++){
SxtEntry e2 = (SxtEntry) list.get(i);
if(e2.key.equals(key)){
e2.value = value;//键值重复直接覆盖
return;
}
}
arr[a].add(e);
}
}
public Object get(Object key){
int a = key.hashCode()%999;
if(arr[a] !=null){
LinkedList list =arr[a];
for(int i=0;i<list.size();i++){
SxtEntry e = (SxtEntry)list.get(i);
if(e.key.equals(key)){
return e.value;
}
}
}
return null;
}
public static void main(String[] args){
SxtMap02 list = new SxtMap02();
list.put("zzz", new wife("oooo"));
list.put("bbb", new wife("eeee"));
list.put("ccc", new wife("wwww"));
list.put("ddd", new wife("ssss"));
wife w = (wife) list.get("ccc");
System.out.println(w.name);
}
}