Map 用来存放对象关系的集合<K,V>
集合中大多都是object 所有在访问元素时记得用(String) 进行强制转换
另外 记得用Iterator迭代器来遍历集合 还可以用增强for 循环来遍历集合 for ( object key : keys)
map中不能包含重复的键,值可以重复.后来的键会覆盖先前键所指值
常用方法
put(K,V) 前键后值,添加到Map集合中
get(K) 使用键作为参数获值
remove(K) 用键移除值
isEmpty 判断是否为空
containsKey(K) 判断键是否存在键
containsValue(V) 判断是否存在值
Set keys = map.keySet(); 返回当前map集合中所有的键集
Collection<String> col = map.value( ) 返回当前map集中所有的值集
Set<Map.Entry<String,String>> set = map.entrySet(); 获取当前map集合中的键值对集
Map.Entry 是类内接口.可以用来承接entrySet的返回值.有getKey和getValue 方法.
HashMap底层使用链表数组保存数据,(单向链表),在构造方法创建HashMap对象时,为加载因子赋值0.75,在第一次调用put方法存放元素时,初始化数组长度为16,在当前集合中键值对数量超过加载因子*数组长度时,扩容,按照原长度两倍扩容,扩容后,所有元素重新分散.
当存放键值对时,使用键的hashCode计算该键值对在数组中索引.如果该索引处无元素,则直接存储.如果该索引位置有元素,则存储到老元素的链接next属性上.当一个链表的元素数,达到八个时,并且数组长度超过64.则链表变红黑树.
LinkedHashMap
TreeMap
泛型
声明泛型,不需要强转可以直接获得string格式的字符串(不再是object)