黑马程序员__Java集合框架Map集合

来源:互联网 发布:骨关节功能解剖学知乎 编辑:程序博客网 时间:2024/05/20 04:49



------- android培训java培训、期待与您交流! ----------

1. Map 集合

  Map接口,Collection接口没有联系

  Map派系的顶层接口

  Map键值对存储,每个集合键必须是唯一的

  每个键,最多只能映射一个值

  地球上的经纬线,东经100度,北纬45度 == 》昌平

  Map<K,V>  K表示键的泛型,V表示值的泛型

2. Map接口中的方法

  找Map接口的实现类HashMap来使用

   V put(K key, V value) 存储到Map集合

   返回值是V类型,返回的是值

   一般情况下,put方法返回值,返回null

   但是如果存储了重复键,会覆盖原有的值

   put方法,会返回被覆盖之前的值

   clear()清除Map集合中,所有的键值对

   size()返回键值对的个数

   boolean containsKey(键) 判断集合中,有没有这个键

   boolean containsValue(值) 判断集合中,有没有这个值

   V get(K) 通过键,获取值,传递键,返回键映射的值

   V remove(Object key) 通过键,删除映射关系,键值对,返回被删除之前的值

   Collection values() 将Map集合中,所有的值,存储到一个Collection集合

 3. 获取出Map集合中的键值对

   Map集合取出方法有两个方法

   第一个方法,在Map接口中有一个方法 keySet()

   返回一个Set集合,将Map中的所有的键,存储到一个Set集合

   涉及到的方法,keySet()

   Map接口中的get()方法

   Map集合第二种取出方法

   利用键值对的映射关系

   映射关系也是一个对象,对象的,描述接口

   就是Map接口中的内部接口  interface Entry{}

   针对于现在HashMap子类,实现了Entry接口

    K getKey() 

          返回与此项对应的键。 

    V getValue() 

          返回与此项对应的值。 

   实现步骤:

     第一步,通过Map集合中的方法 entrySet()获取Entry类型对象

     第二步,自动完成,将获取到的Entry类型对象,存储到了Set集合

     第三步,程序人员拿到的是存储键值对关系的对象(Entry)的Set集合

         Set中,存储的是Entry对象

     第四步,迭代Set集合

           迭代器获取的it.next()返回的是Entry对象

     第五步,通过Entry对象,单独获取键,获取值

4. HashMap

  底层结构也是哈希表,存储对象的时候,存储哈希值

  线程不安全的,执行效率高

  存储null,当作键,当做值

  要求存储到HashMap集合中的键,冲写hashCode equals方法

  对于值,没有任何要求


5. Hashtable

  开始于JDK1.0开始

  从JDK1.2开始,实现Map接口

  早期,没有集合框架概念,存储键值对,只能依靠Hashtable

  Hashtable 

  底层数据结构,也是哈希表

  线程是安全的,执行效率低

  不允许存储null

  由于线程安全,不允许存储null,从JDK1.2版本开始,被HashMap取代

  但是Hashtable虽然已经郁郁而终,但是他的孩子,至今活跃在开发的舞台


6. Properties

   继承自Hashtable,

   这个集合线程安全的!

   持久的属性集可以实现永久存储

   可保存在流中或从流中加载,IO流

   这个集合,可以配合IO流使用,实现数据的永久保存

   eclipse开发,不开启的时候,硬盘中(IO)

   开启eclipse,在内存中运行,(集合)

   既然Properties是Map小弟,是Hashtable的子类

   不用查文档,对于这个集合的存储,取出

7. LinkedHashMap

   有序的Map集合,怎么存储的就怎么取出来、

   和LinkedHashSet用法一致

8. TreeMap

  TreeMap集合特点

    对存储到这个集合中的对象,进行排序

    对象的自然顺序,比较器

    线程不安全的集合,执行效率高

    底层数据结构红黑树(自然平衡二叉树)

    存储自定义对象,排序,对键排序


Map集合总结

1. Map集合自身特点

  A. Map集合存储的键值对

  B. Map集合必须保证键的唯一性

  C. 一个键只能映射一个值

2. Map接口中的方法

  A. put(键,值)将键值对存储到Map集合

  B. get(键)根据键获取值,返回值,如果没有这个键,返回null

  C. containsKey(键)判断集合中没有没有这个键

  D. containsValue(值)判断集合中没有没有这个值

  E. size()返回集合中键值对的个数

  F. values()将Map集合中的所有值存储到Collection集合

  G. keySet()将键,存储到Set集合

  H. entrySet()返回Set集合,Set集合存储的是键值对关系对象Map.Entry'

3. Map 集合的取出方法有两种

  A. keySet方式 ,开发用

  B. entrySet方式,面试用

4. HashMap集合

  底层是哈希表,线程不安全

  允许存储null值,null键

  存储到哈希表中的键对象,必须重写hashCode , equals方法

  保证键的唯一性

5. Hashtable集合

  底层是哈希表,线程安全

  不允许存储null值,null键

  存储到哈希表中的键对象,必须重写hashCode , equals方法

  保证键的唯一性

  从JDK1.2开始,被HashMap取代

  Properties目前,知道怎么存储,怎么取出

6. TreeMap集合

  底层数据结构是红黑树,线程不安全

  存储到TreeMap集合中的键,都要进行自然顺序排序,或者提供比较器

  存储对象实现Comparable接口

  或者自定义比较器,实现Comparator接口


  ------- android培训、java培训、期待与您交流! ----------

0 0
原创粉丝点击