mirror of
https://github.com/LingCoder/OnJava8.git
synced 2026-09-04 05:42:48 +08:00
autocommit
This commit is contained in:
@@ -10,7 +10,7 @@ Java 是从 C++ 的基础上做了一些改进和简化发展而成的。对于
|
||||
如果理解这两章的内容对你来说还有点困难,那么我推荐你先了解下 《Thinking in C》 再继续后面的学习。 这本书现在可以在 [www.OnJava8.com](http://www.OnJava8.com]) 上免费下载。它的内容包含音频讲座、幻灯片、练习和解答,专门用于帮助你快速掌握学习 Java 所需的基础知识。
|
||||
|
||||
<!-- Using-Java-Operators -->
|
||||
## 使用Java运算符
|
||||
## 开始使用
|
||||
|
||||
运算符接受一个或多个参数并生成新值。这个参数与普通方法调用的形式不同,但效果是相同的。加法 `+`、减法 `-`、乘法 `*`、除法 `/` 以及赋值 `=` 在任何编程语言中的工作方式都是类似的。所有运算符都能根据自己的运算对象生成一个值。除此以外,一些运算符可改变运算对象的值,这叫作“副作用”(**Side Effect**)。运算符最常见的用途就是修改自己的运算对象,从而产生副作用。但要注意生成的值亦可由没有副作用的运算符生成。
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
Java 使用了 C 的所有执行控制语句,因此对于熟悉 C/C++ 编程的人来说,这部分内容轻车熟路。大多数面向过程编程语言都有共通的某种控制语句。在 Java 中,涉及的关键字包括 **if-else,while,do-while,for,return,break** 和选择语句 **switch**。 Java 并不支持备受诟病的 **goto**(尽管它在某些特殊场景中依然是最行之有效的方法)。 尽管如此,在 Java 中我们仍旧可以进行类似的逻辑跳转,但较之典型的 **goto** 用法限制更多。
|
||||
|
||||
|
||||
## true 和 false
|
||||
## true和false
|
||||
|
||||
所有的条件语句都利用条件表达式的“真”或“假”来决定执行路径。举例:
|
||||
`a == b`。它利用了条件表达式 `==` 来比较 `a` 与 `b` 的值是否相等。 该表达式返回 `true` 或 `false`。代码示例:
|
||||
|
||||
@@ -1677,20 +1677,19 @@ Signal(dash)
|
||||
|
||||
在这里,我们使用 `filter()` 来保留那些非空 **Optional**,然后在 `map()` 中使用 `get()` 获取元素。由于每种情况都需要定义“空值”的含义,所以通常我们要为每个应用程序采用不同的行为。
|
||||
|
||||
<!-- Terminal Operations -->
|
||||
|
||||
<!-- Terminal Operations -->
|
||||
## 终端操作
|
||||
|
||||
<!-- Summary -->
|
||||
|
||||
这些操作获取一个流并产生一个最终结果;它们不会像后端流提供任何东西。因此,终端操作总是你在管道中做的最后一件事情。
|
||||
这些操作获取一个流并产生一个最终结果;它们不会向后端流提供任何东西。因此,终端操作总是你在管道中做的最后一件事情。
|
||||
|
||||
### 转化成数组(Convert to an Array)
|
||||
|
||||
- `toArray()`:将流转换成适当类型的数组。
|
||||
- `toArray(generator)`:在特殊情况下,生成器用于分配你自己的数组存储。
|
||||
|
||||
如果流操作产生的结果必须是数组形式,这是非常有用的。例如,假设我们想要以一种我们可以将它们作为流重用的方式捕获随机数,这样我们每次都可以得到相同的流。 我们可以通过将它们存储在一个数组中来实现:
|
||||
这组方法在流操作产生的结果必须是数组形式很有用。假如我们想在流里复用获取的随机数,以便于每次都可以得到相同的流们,可以将他们保存到数组中。代码示例:
|
||||
|
||||
```java
|
||||
// streams/RandInts.java
|
||||
|
||||
Reference in New Issue
Block a user