Java重温-持有对象08
持有对象在这里的含义其实是对象容器。
1.Java容器类库的按照概念划分成Collection和Map两种。
2.容器支持打印方法,对于容器类的元素,依赖其toString方法打印
3.Collection有三类,List、Set、Queue。
4. List有两种基本类型,ArrayList和LinkedList。ArrayList通过数组实现,随机访问效率高,但是插入和删除相对较慢。LinkedList通过Node实现,顺序访问效率高,随机访问效率相对较低。插入和删除效率高。(所谓高只是相对的,两者其实速读都很快。在少量数据时效率差别不大)
5.Collection接口继承了Iterable接口,可以通过iterator尽量遍历。
6.LinkedList添加了可以使其作为栈(stack)、队列(queue)或双端队列的方法(这里指的是提供了pop、peek等方法)
7.Set接口与Collection接口内容一样,但是行为不同。
8.Queue(队列)是一个典型的先进先出(FIFO)容器。(与stack相反)
9.简单的容器分类
第11章 持有对象
11.1 泛型和类型安全的容器
11.2 基本概念
11.3 添加一组元素
11.4 容器的打印
11.5 List
11.6 迭代器
11.7 LinkedList
11.8 Stack
11.9 Set
11.10 Map
11.11 Queue
11.12 Collection和Iterator
11.13 Foreach与迭代器
11.14 总结
这里介绍的只是简单的对象容器,对于高并非或多线程下的容器并没有介绍(后续我会补充进来)。
我之前的一个毛病是,比较喜欢用hashmap arraylist几个固定的,并未考虑实际使用场景(虽然在少量数据情况下差别不大)。
过程中测试代码