java编程思想笔记11-持有对象



如果一个程序只包含固定数量的且其生命值都是已知的对象,那么这是一个非常简单的程序.
通常,程序总是根据运行时才知道的某些条件去创建对象.


本章都为简单介绍容器,17章会有详细深入
11.1 泛型和类型安全的容器
使用泛型来指定集合存储数据的类型.将编译期的错误转到运行期.取出来可以直到类型的具体信息,不需要进行转型.
11.2 基本概念
java容器类类库的用途的"保存对象",并将其划分为两个不同的概念;
1)collection
2)map
所有的collection都可以使用foreach语法遍历.
11.3 添加一组元素
Collections 工具类的使用
addAll(); Arrays.asList();
11.4 容器的打印
递归,容器里还有容器
11.5 list 有序,可以重复
ArrayList,它长于随机访问元素,但是在List的中间插入和移除元素时比较慢.
LinkedList ,使用链表的结构,所以它插入和删除元素会比较快,但是随机访问会比较慢.
11.6 迭代器
迭代器(也是一种设计模式)
11.7 linkedlist
linked添加了可以让他用于栈,队列,或双端队的方法.
11.8 stack
"栈"通常是"先进后出"的容器.有时栈也被称为叠加栈,因为最后"压入"栈的元素,第一个弹出栈的元素.
linkedlist 具有能够直接实现栈的所有功能的方法,因此可以直接将linkedlist作为栈来使用,不过有时一个真正的"栈"更能把事情说清楚.
11.9 set
set不保存重复的元素(如何判断重复元素比较复杂)
hashset hashcode方法和equals方法
treeset  
11.10 map
将对象映射到其他对象的能力是一种解决编程问题的杀手锏.
键值对的存储方式(键只能是唯一)
11.11 queue
  • 队列是一个典型的先进先出的容器.即从容器的一端放入,从另一端取出,并且事物放入容易的顺序和取出的顺序是相同的
  • 队列在并发编程中特别重要.它们可以安全的将对象从一个任务传输给另一个任务.

11.11.1 PriorityQueue(优先级队列)
  • 先进先出描述了最典型的队列规则.队列规则是指在给定一组队列中的元素的情况下,确定下一个弹出队列的元素的规则.
  • 在添加元素时,使用comparator来修改这个顺序.确保获取的元素是自己想要的优先级的元素.
11.12 collection和iterator
collection是描述所有有序列容器的共性的跟接口,它可以被认为是一个"附属接口".
使用接口描述的一个理由是它可以使我们能够创建更通用的代码.通过针对接口而非具体实现来编写代码,我们的代码可以应用与更多的对象类型.例如使用一个方法,接收的参数为collection.
11.13 foreach与迭代器
到目前为止,foreach语法主要用于数组,但是它也可以应用与任何的collection对象.
11.13.1 适配器方法惯用法
当你有一个接口需要另一个接口时,编写适配器就可以解决问题.(详见适配器设计模式)
11.14 总结

可以看到,除了treeset之外的所有set都拥有与collection完全一样的接口.list和collection存在明显的不同,尽管list锁要求的方法都在collection中.另一方面,在queue接口中的方法都是独立的;在创建queque功能的实现时,不需要使用collection方法.最后map与collection之间的唯一重叠就是map可以使用entrySet(),和values方法来产生collection.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值