首页 > 代码库 > Map初见
Map初见
* @see HashMap * @see TreeMap * @see Hashtable * @see SortedMap * @see Collection * @see Set * @since 1.2 */ public interface Map<K,V> { }
Map 是一个接口, Map 里面有个Entry<K,V>类.一个Map里面不会有重复的key,一个key对应一个value。
Map接口里面定义了很多基本的方法, 如clear(),size(),value(),repalce(),get()等等。
Map主要围绕的 key,value , 以及Entry<K,V> .
Map中还在自身接口中, 又定义了一个Entry的接口,这个是所有的Map类型都会实现的一个接口。
说实话,个人感觉, Map有点像是个list,( List<Entry<E,V>>), list里面装的是0个或者0个以上的Entry<K,V>。但是里面的方法肯定各有各的特点。
那么里面的方法是如何实现的呢, 现在取AbstractMap 这个实现了Map接口的抽象来看看里面的方法。
看看最常用的get(k)方法, 使用Iterator,遍历map里的所有entry,找到对应value,简单易懂.
注意,在AbstractMap中,有个类SimpleEntry<K,V> 实现了 Map.Entry<K,V>. 并实现了里面的方法.
所有实现Map接口的类,都会有对应自己的Entry 实现Map.Entry<K,V>.
public V get(Object key) { Iterator<Entry<K,V>> i = entrySet().iterator(); if (key==null) { while (i.hasNext()) { Entry<K,V> e = i.next(); if (e.getKey()==null) return e.getValue(); } } else { while (i.hasNext()) { Entry<K,V> e = i.next(); if (key.equals(e.getKey())) return e.getValue(); } } return null; }
Map初见
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。