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的底层实现
猜你喜欢
转载自blog.csdn.net/u013511642/article/details/70952599
今日推荐
周排行