总结:本小节介绍了泛型、自动装箱、迭代、Bag、Queue、Stack以及一个栈用例的经典例子--算术表达式求值。

重点:

1. 集合类的抽象数据类型的一个关键特性是我们应该可以用它们储存任意类型的数据。一种特别的Java机制能够做到这一点,它被称为泛型,也叫作参数化类型。

2. 在处理赋值语句、方法的参数和算术或逻辑表达式时,Java会自动在引用类型(Character, Integer...)和对应的原始数据类型(char, int...)之间进行和转换。

自动装箱:int -> Integer

自动拆箱:Integer -> int

3. 如果集合是可迭代的,用例用一行语句即可打印出交易的列表:

for (Transaction t : collection) {
StdOut.println(t);
}

这种语法叫做foreach语句:可以将for语句看作对于集合中的每个交易t(foreach),执行以下代码段。

很难想象还有比这更加清晰和简洁的代码。

4. 背包是一种不支持从中删除元素的集合数据类型--它的目的就是帮助用例收集元素并迭代遍历所有收集到的元素(用例也可以检查背包是否为空或者获取背包中元素的数量)。

使用Bag可以说明元素的处理顺序不重要。

5. 在应用中使用栈迭代器的一个经典原因是在用集合保存元素的同时颠倒它们的相对顺序。

6. Dijkstra的双栈算术表达式求值算法

牛!

最新文章

  1. Google-glog 日志库使用手记
  2. over partition by与group by 的区别
  3. 【qt4.8.6】qt-everywhere-opensource-src-4.8.6静态库编译,搭建vs2010 + Qt4.8.6环境
  4. linux 文件在磁盘上的表示
  5. Windows如何安装自定义服务
  6. C语言遍历一个文件夹下面的所有文件
  7. python url解析
  8. SPSS基础操作
  9. 【动态规划】XMU 1588 01序列计数
  10. 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)
  11. 一个简单的HTTP服务器(多线程)
  12. TestThreadPoolExecutor.java
  13. eclipse控制台中文乱码解决
  14. [Android]Gradle 插件 DiscardFilePlugin(class注入&清空类和方法)
  15. WinFom中经典小游戏(含源码)
  16. DAO层设计Junit测试
  17. DIV实现垂直居中的几种方法
  18. 调用GOOGLE的TTS实现文字转语音(XE7+小米2)(XE10.1+小米5)
  19. python垃圾回收之分代回收
  20. Groovy/Spock 测试导论

热门文章

  1. 读取NVRAM中的SN(barcode)
  2. 字典的循环和if语句
  3. SQL Server 2012 管理新特性:AlwaysOn【转】
  4. XDocument 获取包括第一行的声明(版本、编码)的所有节点
  5. Educational Codeforces Round 6 E. New Year Tree dfs+线段树
  6. MySQL数据库优化的八种方式(经典必看)
  7. (六)文件操作的主要接口API
  8. JAVA 使用POI导出数据格式为Execl
  9. spring boot初探
  10. unity3d Light Probe Group图解超详细使用方法