黑马程序员--集合的重点掌握部分

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

一.集合分类
 Collection: 单列集合, 一次存一个对象
  List: 可重复, 有索引
    * ArrayList: 数组实现, 查找快, 增删慢
     * LinkedList: 链表实现, 增删快, 查找慢
   Vector:  原理和ArrayList相同, 线程安全, 效率较低
   Stack:  栈, 先存的对象最后才能被取出
  Set:  不重复, 无索引
    * HashSet:  使用哈希算法, 去重复, 速度快.
    * TreeSet:  使用二叉树算法, 按照指定顺序排序. 指定顺序的方式有两种: 自然顺序, 比较器
   LinkedHashSet: HashSet的子类, 也是使用哈希算法, 但可以保留存储顺序.
  Map: 键值对, 一次存两个对象. 键唯一, 可以根据键查找值.
   * HashMap:  使用哈希算法对键对象去重复
   * TreeMap:  使用二叉树算法对键对象排序
  LinkedHashMap: HashMap的子类, 去重复的同时保留存储顺序
  Hashtable:  和HashMap原理相同, 都是使用哈希算法去重复. 线程安全, 效率略低. 键和值都不允许为null
  Properties:  键和值都是String, 用来存储一些配置项


二.List的分类
 1.ArrayList
  数组实现, 查找快
 2.LinkedList
  链表实现, 增删快
  也是一种队列的实现, 可以使用remove()方法获取队首的元素
 3.Vector
  和ArrayList原理相同, 但线程安全, 效率略低
  拥有一种自己特有的迭代方式
  使用elements()方法可以获取一个Enumeration, 调用hasMoreElements()方法判断是否包含下一个, 调用nextElements()获取下一个
 4.Stack
  Stack是一种栈结构的容器, 先存的元素最后被取出, 后存的元素先被取出
   方法:  push(存数据)  pop(取数据),定义遍历时,由于出栈后集合个数减少,所以要注意循环次数.

三.TreeSet
 1.什么是TreeSet
  TreeSet是一种可以指定顺序的Set集合, 指定顺序的方式有两种: 自然顺序(Comparable), 比较器(Comparator)
*** 2.Comparable
  在要放入TreeSet集合的类上实现Comparable接口, 重写compareTo()方法, 对象存入TreeSet的时候就会按照compareTo()方法排序
*** 3.Comparator
  如果两个TreeSet存储同一类型对象, 需要使用不同顺序, 那么Comparable接口就无法满足这样的需求了, compareTo()方法只有一个, 无法定义两种比较方式.
  如果不希望TreeSet按照Comparable的顺序排序, 可以在创建TreeSet的时候, 在构造函数中传入一个比较器
  创建TreeSet对象时, 构造函数可以接收一个Comparator类型的对象
  我们可以自定义一个Comparator类的子类, 重写compare()方法
  一旦构造函数中传入了Comparator, TreeSet将不再按照Comparable中的顺序排序, add()方法执行时自动按照Comparator的顺序排序  


四.Map集合
 1.什么是Map集合
  Map集合用来存储键值对, 每次存储2个对象, 一个键一个值, 可以根据键查找值, 键必须唯一.
  * 2.Map集合常用方法
  V put(K key, V value)
   存储一个键值对, 如果键在集合中存在, 值将会覆盖原有值, 并且返回原有值.
  V get(Object key)
   根据键获取值, 如果不存在, 返回null
  V remove(Object key)
   根据键删除值, 并将值返回, 如果不存在, 返回null
  boolean containsKey(Object key)
   判断指定的键对象是否存在
 3.Map集合的遍历
    *** keySet:
   Map集合的keySet()方法可以得到一个所有键对象组成的Set集合
   遍历这个Set集合可以得到每一个键对象
   再根据键对象即可获取值
    *** entrySet:
   Map集合的entrySet()方法可以得到一个所有Entry对象(键值对)组成的Set集合
   遍历这个Set集合可以得到每一个Entry对象
   再使用Entry的getKey()方法和getValue()方法获取键和值
 4.Map集合的常用实现类
    *** HashMap:  使用哈希算法对键对象去重复
    *** TreeMap:  使用二叉树算法对键对象排序
  LinkedHashMap: HashMap的子类, 去重复的同时保留存储顺序
  Hashtable:  和HashMap原理相同, 都是使用哈希算法去重复. 线程安全, 效率略低. 键和值都不允许为null
  Properties:  键和值都是String, 用来存储一些配置项

 ------- android培训java培训、期待与您交流! ----------   详细请查看: http://edu.csdn.net/heima/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值