导图社区 Mapstatic内部接口知识框架笔记
Mapstatic内部接口知识框架笔记,包括Hashtable与HashMap的不同、Map的static内部接口、循环遍历输出HashMap/TreeMap的键值、Map接口输出等等。
网店详情页排版方法分享~包括中心页面组成,优质详情必备,详情页的排版参考方法。感兴趣的小伙伴可以看看哦~
喷绘色彩基础培训方案,内容涵盖色彩基础,喷绘写真。框架清晰,内容丰富,希望对小伙伴有所帮助哦~
酒窖营销计划方案,包括结果目标,过程目标。框架清晰,内容丰富,有需要的小伙伴可以看看哦~ 可供大家参考,借鉴,交流。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
Mapstatic内部接口集合知识框架笔记
数据存储方式:键值对
实现类
HashMap<K,V>
存入HashMap中的映射对的“键”对应的类必须重写 hashCode()和equals()方法。
常用String作为Map的“键”。
HashMap内部对“键”用Set进行散列存放。所以根据“键”去取“值”的效率很高。
注:它是使用频率最高的一个集合
TreeMap
TreeMap内部使用红黑树结构对“key”进行排序存放,所以放入TreeMap中的“key-value”对的“key”必须是可“排序”的
TreeMap()使用键的自然顺序构造一个新的、空的树映射。
要求存入的bean实现Comparable接口
TreeMap(Comparator<? super K> comparator) 构造一个新的、空的树映射,该映射根据给定比较器进行排序。
Hashtable(不常用,线程安全的)
Hashtable与HashMap的不同
Hashtable
是同步的(线程安全的);
不能有null键,也不能有null值,否则运行时出空指针异常;
基于陈旧的Dictionary<K,V>类 ,有contains() 方法,用于测试此映射表中是否存在与指定值关联的键,等同于Hashtable类中的containsValue()
HashMap
是不同步的(线程非安全的);
能存储最多一个null键,任意多个null值;
有containsKey(),containsValue()方法,没有contains() 方法
Hashtable是JDK1.0就有了, HashMap是JDK1.2引入的,操作大多跟Hashtable相同,建议使用HashMap.
Map的static内部接口
Map.Entry
Map.Entry是Map中内部定义的一个static接口,专门用来保存keyvalue的内容。
key
value
选择适当的集合
选择标准:
存放要求
无序-Set
有序-List
“key-value”对,较多存放和查询,较少遍历-Map
读和改(插入/删除)的效率
Hash*-两者都最高
Array*-读快改慢
Linked*-读慢改快
循环遍历输出HashMap/TreeMap的键值
HashMap/TreeMap<Integer,String> hm = new HashMap/TreeMap<Integer,String>();
Set<Integer> kSet = hm.keySet(); //遍历kSet,获取每一个key及其对应的value Iterator <Integer> it = kSet.iterator(); while(it.hasNext()){ Integer key = it.next(); String value = hm.get(key); System.out.println("key="+key + ",value=" + value); }
Map接口输出
对于Map接口来说,其本身是不能直接使用迭代进行输出的,因为Map中的每一个位置存放的是一对值(keyvalue),而Iterator中每次只能找到一个值。所以如果非要使用迭代进行输出的话,要按照以下操作步骤完成:
1.将Map的实例通过entrySet()方法变为Set接口对象
2.通过Set接口实例为Iterator实例化
3.通过Iterator迭代输出,每个内容都是Map.Entry的对象
4.通过Map.Entry进行keyvalue的分离。getKey,getValue
注:Map大多时候用于查找,输出属于少数操作
遍历方式
Set<K> keySet();
Set<Map.Entry<K, V>> entrySet();
方法
V put(K k,V v)
V get(K k)
boolean containsKey(K k)
boolean containsValue(V v)
V remove(Object key);
boolean isEmpty();
int size();
void clear();
Collection<V> values();