Java编程思想 第十一章 持有对象(容器)
来源:互联网 发布:nginx 域名 需要申请吗 编辑:程序博客网 时间:2024/05/17 02:57
1. 通过使用泛型,可以在编译期防止将错误类型的对象放置到容器中
2. 容器分为两个不同的类型
1. Collection:一个独立元素的序列;打印出来是方括号;add(); 2. add():确保这个Collection包含指定的元素2. Map:一组成对的“键值对”对象,允许使用键来查找值;打印出来是大括号;put();
3. 添加一组元素
1. Arrays.asList()方法接受一个数组或是一个用逗号分隔的元素序列,将其转换为一个List对象 注:该方法产生的List对象底层和数组是共享内存的,即其实际上是一个对象2. Collections.addAll()方法接受一个Collection对象,以及一个数组或是一个用逗号分隔的元素序列,将元素添加到Collection中
4. List的行为根据equals()的行为而有所变化(两个String只有在内容完全一样的情况下才会是等价的);subList()所产生的列表的幕后就是初始化列表,对所有的列表的修改都会反映到出事列表中;
5. 迭代器Iterator:next(),hasNext(),remove();单向移动;ListIterator双向移动
6. LinkedList
1. 得到首元素:getFirst(),element(),peek()2. 移除首元素:remove(),removeFirst(),poll()3. 增加首元素:addFirst()4. 增加尾元素:add(),offer(),addLast(),removeLast()
7. TextFile:继承自List,其构造器将打开文件
8. PriorityQueue:优先级队列,默认使用对象在队列中的自然顺序;通过提供自己的Comparator来修改这个顺序
9. 当要实现一个不是Collection的外部类的时候,使用Iterator更好;而当是Collection(Iterable类型),使用foreach
10. 任何实现Iterable的类都可以将它用于foreach语句中
11. 当有一个接口并需要另一个接口的时候,编写适配器可以解决问题
12. Iterable接口只需实现iterator()方法;Iterator必须实现hasNext()和next()
13. Arrays.asList()产生的List对象会使用底层数组作为其物理实现,只要你执行的操作会修改这个List,并且你不想原来的数组被修改,那么你就应该在另一个容器中创建一个副本
14. 容器总结
- 容器不能持有基本类型,自动包装机制会仔细的执行基本类型到容器中所持有的包装器类型之间的双向转换
- List
- ArrayList:适合进行大量的随机访问
- LinkedList:适合从表中间插入或者删除元素
- 各种Queue以及栈的行为,由LinkedList提供支持
- Map
- HashMap:用来快速访问
- TreeMap:保持“键”始终处于排序状态,没有HashMap快
- LinkedHashMap:保持元素插入的顺序,通过散列提供快速访问能力
- Set
- HashSet:提供最快的查询速度
- TreeSet:保持元素处于排序状态
- LinkedHashSet:以插入顺序保持元素
- Map和Collection之间的唯一重叠就是Map可以使用entrySet()和values()方法来产生Collection
0 0
- Java编程思想 第十一章 持有对象(容器)
- JAVA编程思想-第十一章 持有对象
- 《java编程思想》第十一章 持有对象
- java编程思想读书笔记 第十一章 持有对象(中)
- java编程思想读书笔记 第十一章 持有对象(下)
- java编程思想读书笔记 第十一章 持有对象(总结)
- Java编程思想笔记第十一章(持有对象)
- 《Java 编程思想》--第十一章:内持有对象
- JAVA编程思想学习总结:第十一章持有对象
- 《JAVA编程思想》学习笔记---第十一章:持有对象
- java编程思想读书笔记----第十一章 持有对象
- 第十一章、持有对象(容器)
- 第十一章:持有对象(容器)
- Java编程思想第四版读书笔记——第十一章 持有对象
- Java编程思想第四版第十一章学习——持有对象
- <Java编程思想>持有对象(笔记)
- java编程思想-持有对象
- 《Java编程思想-持有对象》
- 最终还是水过去的解题报告
- WPF中一个ListBox实例
- 51nod 数字1的数量(数位DP)
- 多重背包问题
- AngularJs ng-repeat 必须注意的性能问题
- Java编程思想 第十一章 持有对象(容器)
- 如何写一个最基本的编译器
- Gym 100712D Alternating Strings (dp)
- Qt 学习笔记 TreeWidget 增删改
- NGUI创建Scroll View的基本步骤
- 滑动窗口 最长不重复子串问题,set保存滑动窗口,set保存子串和查重,l指向子串左端,r指向要添加的字符,如果重,一直删除到字符的后一位
- 分布式文件系统FastDFS架构剖析
- VC下如何调用控制台命令以及其他可执行文件
- 随便说一说computer graphics