算法(第4版)-1.3.1 API

Posted Guure

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法(第4版)-1.3.1 API相关的知识,希望对你有一定的参考价值。

总结:本小节介绍了泛型、自动装箱、迭代、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的双栈算术表达式求值算法

牛!

以上是关于算法(第4版)-1.3.1 API的主要内容,如果未能解决你的问题,请参考以下文章

1.3 Bags, Queues, and Stacks(算法 Algorithms 第4版)

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

算法(第4版)-2.4 优先队列

算法(第4版)-1.2.1 使用抽象数据类型

《图灵程序设计丛书 算法》第4版.pdf

算法(第4版)-1.5 案例研究:union-find算法