1.Map体系下有三个子类:
HashMap
底层是哈希表数据结构,可以存入null键和null值,不同步
---TreeMap
底层是二叉树数据结构,线程同步,可以用于给map集合中的键进行排序
和Set很像,Set底层是Map
添加元素时,如果出现相同键,那么厚添加的值会覆盖原有键对应的值,并且put方法会返回被覆盖的值
2.map集合的两种取出方式:
(1) keySet():将map中所有的键存入到Set集合,因为set具备迭代器
可以以迭代方式取出所有的键,再根据get()方法获得每一个键对应的值
Map集合的取出原理:将map转化为set,再通过迭代取出
(2)EntryMap():返回Map的关系映射 Set<Map.Entry<K,V>>
Map.Entry其实是一个接口,他是Map接口中的一个内部接口
3.两个集合工具类:Collections,Arrays
(1)Arrays工具类的asList()方法
asList:将数组转化为List集合,可以使用集合的思想和方法操作数组中的元素
注意:将数组转变为集合,不可以使用集合的曾珊方法,因为数组的长度是固定的
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转化为集合中的元素
如果数组中的元素搜之基本数据类型,那么会将该数组作为集合中的元素存在
(2)集合转化为数组
指定类型的数组待敌要定义多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size
当指定类型的数组长度大雨了集合的size,就不会新创建数组,而是使用传递进来的数组
所以创建一个刚刚好的数组最优