黑马程序员——java集合框架(Map和工具类)

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,就不会新创建数组,而是使用传递进来的数组
     所以创建一个刚刚好的数组最优

你可能感兴趣的:(Java集合框架)