java自动定义一个map类_自定义实现Map类 高效版
package text;
import java.util.*;
/*
*自定義Map的升級版
*提高查詢的效率
*數(shù)組套列表套對象
* */
public class SxtMap002{
LinkedList[] arr= new LinkedList[999];//Mapde 底層實現(xiàn)結(jié)構(gòu)是:數(shù)組+鏈表
int size;
public void put(Object key,Object value){
SxtEntry e=new SxtEntry(key,value);
int a=key.hashCode()%arr.length; //利用hashCode方法求出要存放的位置
if(arr[a]==null){
LinkedList list=new LinkedList();
arr[a]=list;//將list插入數(shù)組中
list.add(e);//將Sxtentry對象插入列表中
}else{
LinkedList list =arr[a];//取出數(shù)值中列表進行遍歷
for(int i=0;i
SxtEntry e2=(SxtEntry) list.get(i);
if(e2.key.equals(key)){
e2.value=value;//鍵值重復(fù)直接覆蓋
return;
}
}
arr[a].add(e);
}
}
public Object get(Object key){
int a= key.hashCode()%arr.length;
if(arr[a]!=null){
LinkedList list = arr[a];
for(int i=0;i
SxtEntry e=(SxtEntry) list.get(i);
if(e.key.equals(key)){
return e.value;
}
}
}
return null;
}
public static void main(String[] args){
SxtMap002 m=new SxtMap002();
m.put("張三",new Wife("楊冪"));
m.put("張三",new Wife("李四"));
Wife w=(Wife) m.get("張三");
System.out.println(w.name);
}
}
class Wife{
String name;
public Wife(String name){
this.name=name;
}
}
總結(jié)
以上是生活随笔為你收集整理的java自动定义一个map类_自定义实现Map类 高效版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: details在Java中_Spring
- 下一篇: python 群控源代码_自动化 带你用