package com.soto.collection;
/**
* 自定义实现Map的功能!
* 暂不完美!
* Map:存放键值对,根据键对象找对应的值对象, 键不能重复
* @author 王
*
*/
public class SxtMap001 {
SxtEntry[] arr = new SxtEntry[990]; //放多点,不用扩容;
int size;
public void put(Object key,Object value){ //put方法
SxtEntry e= new SxtEntry(key, value);
//解决键值对重复的处理,直接覆盖
for(int i=0;i<size;i++){ //遍历数组
if(arr[i].key.equals(key)){ //注意:使用的 equals!!
arr[i].value = value;
return; //跳出
}
}
arr[size++] = e;
}
public Object get(Object key){ //get方法
for(int i=0;i<size;i++){ //遍历数组
if(arr[i].key.equals(key)){
return arr[i].value;
}
}
return null; //没找到,返回空
}
public boolean containKey(Object key){
for(int i=0;i<size;i++){ //遍历数组, 但效率较低
if(arr[i].key.equals(key)){ //注意:使用的 equals!!
return true;
}
}
return false;
}
public boolean containValue(Object value){
for(int i=0;i<size;i++){ //遍历数组
if(arr[i].value.equals(value)){
return true;
}
}
return false;
}
public static void main(String[] args) {
SxtMap001 m= new SxtMap001();
m.put("soto", new Wife("呆"));
m.put("张三", new Wife("李四"));
m.put("张三", new Wife("王五"));
Wife w=(Wife) m.get("张三");
System.out.println(w.name);
}
}
class SxtEntry{
Object key;
Object value;
public SxtEntry(Object key, Object value) {
super();
this.key = key;
this.value = value;
}
}
类似Python中的字典
Java Map的底层实现
最新推荐文章于 2024-06-19 09:24:12 发布