黑马程序员——第七篇:Map集合、collection工具类

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a

href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


1、Map集合特点和Collection区别

1.  Map集合特点

     A:映射键值对集合

      B:存储对象的时候,存储1个键,存储1个值

      C:一个集合中,键必须唯一,1个键只能对应1个值

       

2.  MapCollection区别

      ACollection每次存储1个对象

      BMap每次存储2个对象

2、Map接口中的抽象方法

  使用Map接口的实现类对象,HashMap

 

1.  put 将键值对存储到集合中

      V put(键的对象,值的对象)

 

2.  remove(Object obj)

     传递键,删除整个键值对

     V remove(Object obj) 返回被移除之前的值

 

3.  containsKey,containsValue

      boolean containsKey(Object o)判断集合中有没有这个键,如果有返回true

      boolean containsValue(Object o)判断集合中有没有这个值,如果有返回true

 

4.  get

      根据键,获取值

      V get(K), 传递键,返回这个键对应的值

      如果集合中,没有这个键,返回null

 

5. values

      Map集合中的值,存储到一个Collection集合中

      方法返回值是Collection<V>values()

3、Map集合迭代遍历

 

1.  KeySet方式

      Map接口方法  Set keySet()Map集合中的所有键,存储到Set集合

      步骤:

        AMap集合方法keySet(),将所有键存储到Set集合

        B:迭代Set集合(Iterator)

        C:获取出Set集合中的元素(就是Map中的键)

        DMap集合方法get,通过键获取值

 

2.  entrySet方式

      Map接口方法 entrySet()Map集合中的键值对的

      映射关系对象存储到Set集合

 

     映射关系: Map接口中的内部接口Entry  Map.Entry (描述键值对映射关系,结婚证)

 

      Set<Map.Entry<,>>

 

      步骤:

     AMap集合方法entrySet()将键值对映射关系对象Map.Entry,存到Set集合

     B:迭代Set集合(Iterator)

     C:获取出Set集合中的元素

     D:迭代出来的是什么,是键值对映射关系对象Map.Entry

     E:使用键值对映射关系对象Map.Entry接口方法 getKey getValue获取键值对

 

4.HashMap集合

1.  HashMap自身特性

     A:底层数据结构是哈希表

     B:存取速度快

     C:作为键的对象,必须实现hashCodeequals

     D:线程不安全集合,运行速度快

     E:允许存null,null

 

2.  HashMap练习题

      键是自定义对象,值是字符串

      两张方式获取程序Demo

 

 

5.LinkedHashMap集合

1.  LinkedHashMap自身特性

      A:继承 HashMap

      B:底层是基于链表的哈希表实现

      C:具有可预知的迭代顺序,怎么存储怎么获取

      D:作为键的对象,必须实现hashCodeequals

      E:线程不安全集合,运行速度快

      F:允许存null,null

      G:存取速度快

        程序Demo

 

6.TreeMap集合

1.  TreeMap集合自身特性

      A:底层数据红黑树结构

      B:对存储的键进行排序

     C:对象的自然顺序

     D:比较器对象

      E:线程不安全集合,运行速度快

 

 

7.Hashtable集合

1.  Hashtable集合自身特性

      A:底层哈希表结构

      B:作为键的对象,必须实现hashCodeequals

      C:线程安全集合,运行速度慢

      D:不允许存储null,null

 

    开始于JDK1.0版本,1.2开始,改进为实现Map接口

    被更先进的HashMap取代

 

2.  Properties 集合

      A:继承Hashtable

      B:也是哈希表结构

      C:线程安全集合,运行速度慢

    这个集合,可以和IO流对象,结合使用,实现数据的持久性存储

 

   Properites 集合对象,没有定义泛型,我们在使用中,也不能写泛型

    键值对的数据类型,固定为String类型

   

   Properites集合方法,4

     setProperty(String key,String value)

     将键值对存储到集合中,内部使用的是Hashtable的方法put

 

     String getProperty(String key)

      通过键获取值,等同于Map中的get方法

8、map集合练习

    计算出在一个字符串中,每个字母的出现次数

    abcdtgefw

     结果:a(3)b(5)c(2)

     分析:a=3 b=5c=2键值对,Map集合才能实现功能

                TreeMap集合,存储键值对,字母是键,出现次数是值

         程序Demo

 

9.Collections工具类

 java.util.Collections,专门对集合进行操作

  方法,全静态,直接类名调用

 

1.  static void sort

     方法针对List集合进行排序,  不对Set,Map排序 Tree

     sort(List list) 按照集合中的对象的自然顺序排序

     如果对象,没有自然顺必须,直接编译失败

 

 

2.  static void sort

     sort方法的重载形式,方法名一样,参数列表不同

     sort(Comparator c)传递一个比较器对象,

     将根据比较器对象进行排序,不依赖对象自然顺序

 

3.  static Comparator reverseOrder()

      返回新的比较器对象,逆转对象的自然顺序

      需要和sort配合使用

 

 

4.  static Comparator reverseOrder()

      reverseOrder()方法的重载形式,参数 Comparator类型参数

      传递一个比较器,返回一个新的比较器,新的比较器,逆转传递比较器的顺序

      Comparator reverseOrder(Comparator c)返回新的比较器

5.  static int binarySearch(List list,Object o)

      List集合,进行二分查找,折半查找

      传递List集合,传递被查找的关键字,返回关键字所在的索引

      集合有序排列

 

6.  static void reverse()

      List集合翻转 (和数组翻转一回事)

     reverse(List list)

7.  static void shuffle()

      List集合中的元素,随机排列

      shuffle(List list) 洗牌

 

8.  一组方法

      特点:方法名字都是以synchronized开头 ,同步

      将线程不全集合,变成线程安全集合,一般不用

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值