《Java 编程思想》--第十一章:内持有对象

  1. 如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序
  2. java实用类库还提供了一套相当完整的容器类来解决这个问题,其中基本类型是List、Set、Queue和Map。这些对象也称为集合类。
  3. Set对于每个值都只保存一个对象,Map是允许你将某些对象与其他一些对相关连起来的关联数组。Java容器类都可以自动的调整自己的尺寸。
  4. 通过泛型,就可以在编译器防止将错误类型的对象放置到容器中
  5. 当你制定了某个类型作为泛型参数时,并不仅限于只能将该确切类型的对象放置到容器中。向上转型也可以向作用于其他类型一样作用与泛型
  6. Collection:一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定对象产生的顺序
  7. Map:一组成对的”键值对“对象,允许你使用键来查找值
  8. Collection 是描述所有序列容器的共性的根接口 ,概括了序列的概念,一种存放一组对象的方式
  9. List类型:
    1. ArrayList:长于随机访问元素,但是在List的中间插入和移除元素时较慢
    2. LinkerList:实现了基本的List接口,但是他执行某些操作,在List的中间插入和移除时比ArrayList更高效,但在随机访问操作方面却要逊色一些。提供了优化的顺序访问
  10. Set类型:
    1. HashSet: HashSet是Set的一个实现,他专门对快速查找进行了优化
    2. TreeSet:存储在红黑树数据结构中,如果你想对结果排序,可以使用TreeSet来代替HashSet
      1. new TreeSet<String>(String.CASE_INSENSITIVE_ORDER)
    3. LinkedHashSet:因为查询速度的原因也使用了散列,但是看起来他使用了链表来维护元素的插入顺序
  11. Map类型:
    1. HashMap:
    2. TreeMap:
    3. LinkedHashMap:
  12. 迭代器是一个对象,它的工作是便利并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。迭代器通常被称为轻量级对象:创建它的代价小Java的Iterator只能单向移动,这个Iterator只能:
    1. 使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素
    2. 使用next()获得序列中的下一个元素
    3. 使用hasNext()检查序列中是否还有元素
    4. 使用remove()将迭代器新近返回的元素删除
  13. 迭代器统一了对容器的访问方式
  14. ListIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问,ListIterator可以双向移动
  15. ”栈“通常是指”后进先出“(LIFO)的容易,有时栈也被称为叠加栈,因为最后”压入”栈的元素,第一个”弹出“栈。LinkedList提供了方法以支持栈的行为,并且它实现了Stack接口,因此LinkedList可以用作Stack的实现
  16. 队列是一个典型的先进先出(FIFO)的容器。LinkedList提供了方法以支持队列的行为,并且它实现了Queue接口,因此LinkedList可以用作Queue的一种实现。
  17. 优先级队列声明下一个弹出元素时最需要的元素(具有最高的优先级)。在插入一个对象时,这个对象会在队列中被排序
  18. java.util.AbstractCollection类提供了Collection的默认实现,使得你可以创建AbstractCollection的子类型。
  19. foreach可以用于任何Collection对象,只要创建了Iterator,就可以使用foreach
  20. ArrayList上附着了java.util.RandomAccess接口,而LinkedList则没有
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值