提交 110c9984 编写于 作者: W wizardforcel

2020-07-01 18:02:07

上级 05bc92aa
# Java 阅读器/作家 # Java 读取器/作家
\ No newline at end of file \ No newline at end of file
...@@ -27,16 +27,16 @@ ...@@ -27,16 +27,16 @@
## 创建读者 ## 创建读者
为了创建一个`Reader`,我们必须首先导入`java.io.Reader`包。 导入软件包后,就可以创建阅读器。 为了创建一个`Reader`,我们必须首先导入`java.io.Reader`包。 导入软件包后,就可以创建读取器。
```java ```java
// Creates a Reader // Creates a Reader
Reader input = new FileReader(); Reader input = new FileReader();
``` ```
在这里,我们使用`FileReader`类创建了一个阅读器。 这是因为`Reader`是抽象类。 因此,我们无法创建`Reader`的对象。 在这里,我们使用`FileReader`类创建了一个读取器。 这是因为`Reader`是抽象类。 因此,我们无法创建`Reader`的对象。
**注意**:我们也可以从`Reader`的其他子类创建阅读器。 **注意**:我们也可以从`Reader`的其他子类创建读取器。
* * * * * *
...@@ -44,7 +44,7 @@ Reader input = new FileReader(); ...@@ -44,7 +44,7 @@ Reader input = new FileReader();
`Reader`类提供了由其子类实现的不同方法。 以下是一些常用方法: `Reader`类提供了由其子类实现的不同方法。 以下是一些常用方法:
* `ready()`-检查阅读器是否准备好阅读 * `ready()`-检查读取器是否准备好阅读
* `read(char[] array)`-从流中读取字符并将其存储在指定的数组中 * `read(char[] array)`-从流中读取字符并将其存储在指定的数组中
* `read(char[] array, int start, int length)`-从流中读取等于`长度`的字符数,并从`开始`开始存储在指定的数组中 * `read(char[] array, int start, int length)`-从流中读取等于`长度`的字符数,并从`开始`开始存储在指定的数组中
* `mark()`-标记流中已读取数据的位置 * `mark()`-标记流中已读取数据的位置
...@@ -106,7 +106,7 @@ Data in the stream: ...@@ -106,7 +106,7 @@ Data in the stream:
This is a line of text inside the file. This is a line of text inside the file.
``` ```
在上面的示例中,我们使用`FileReader`类创建了一个阅读器。 阅读器与文件 **input.txt** 链接。 在上面的示例中,我们使用`FileReader`类创建了一个读取器。 读取器与文件 **input.txt** 链接。
```java ```java
Reader input = new FileReader("input.txt"); Reader input = new FileReader("input.txt");
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
## 创建一个 InputStreamReader ## 创建一个 InputStreamReader
为了创建一个`InputStreamReader`,我们必须首先导入`java.io.InputStreamReader`包。 导入包后,就可以在这里创建输入流阅读器。 为了创建一个`InputStreamReader`,我们必须首先导入`java.io.InputStreamReader`包。 导入包后,就可以在这里创建输入流读取器。
```java ```java
// Creates an InputStream // Creates an InputStream
...@@ -49,8 +49,8 @@ InputStreamReader input = new InputStreamReader(file, Charset cs); ...@@ -49,8 +49,8 @@ InputStreamReader input = new InputStreamReader(file, Charset cs);
### read()方法 ### read()方法
* `read()`-从阅读器读取单个字符 * `read()`-从读取器读取单个字符
* `read(char[] array)`-从阅读器读取字符并将其存储在指定的数组中 * `read(char[] array)`-从读取器读取字符并将其存储在指定的数组中
* `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从`开始`开始存储在指定的数组中 * `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从`开始`开始存储在指定的数组中
例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。 例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。
...@@ -101,7 +101,7 @@ Data in the stream: ...@@ -101,7 +101,7 @@ Data in the stream:
This is a line of text inside the file. This is a line of text inside the file.
``` ```
在上面的示例中,我们使用文件输入流创建了一个输入流读取器。 输入流阅读器与文件 **input.txt** 链接。 在上面的示例中,我们使用文件输入流创建了一个输入流读取器。 输入流读取器与文件 **input.txt** 链接。
```java ```java
FileInputStream file = new FileInputStream("input.txt"); FileInputStream file = new FileInputStream("input.txt");
...@@ -168,7 +168,7 @@ The character encoding of input2: UTF8 ...@@ -168,7 +168,7 @@ The character encoding of input2: UTF8
### close()方法 ### close()方法
要关闭输入流阅读器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器读取数据。 要关闭输入流读取器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器读取数据。
* * * * * *
......
...@@ -88,7 +88,7 @@ public class Main { ...@@ -88,7 +88,7 @@ public class Main {
} }
``` ```
在上面的示例中,我们使用文件输出流创建了一个输出流读取器。 输出流阅读器与 **output.txt** 文件链接。 在上面的示例中,我们使用文件输出流创建了一个输出流读取器。 输出流读取器与 **output.txt** 文件链接。
```java ```java
FileOutputStream file = new FileOutputStream("output.txt"); FileOutputStream file = new FileOutputStream("output.txt");
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
## 创建一个 FileReader ## 创建一个 FileReader
为了创建文件阅读器,我们必须首先导入`java.io.FileReader`包。 导入包后,就可以创建文件阅读器。 为了创建文件读取器,我们必须首先导入`java.io.FileReader`包。 导入包后,就可以创建文件读取器。
**1.使用文件名** **1.使用文件名**
...@@ -42,7 +42,7 @@ FileReader input = new FileReader(File fileObj); ...@@ -42,7 +42,7 @@ FileReader input = new FileReader(File fileObj);
FileReader input = new FileReader(String file, Charset cs); FileReader input = new FileReader(String file, Charset cs);
``` ```
在这里,我们使用`Charset`类指定文件阅读器的字符编码。 在这里,我们使用`Charset`类指定文件读取器的字符编码。
* * * * * *
...@@ -52,8 +52,8 @@ FileReader input = new FileReader(String file, Charset cs); ...@@ -52,8 +52,8 @@ FileReader input = new FileReader(String file, Charset cs);
### read()方法 ### read()方法
* `read()`-从阅读器读取单个字符 * `read()`-从读取器读取单个字符
* `read(char[] array)`-从阅读器读取字符并将其存储在指定的数组中 * `read(char[] array)`-从读取器读取字符并将其存储在指定的数组中
* `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中 * `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中
例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。 例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。
...@@ -100,7 +100,7 @@ Data in the file: ...@@ -100,7 +100,7 @@ Data in the file:
This is a line of text inside the file. This is a line of text inside the file.
``` ```
在上面的示例中,我们创建了一个名为`输入`的文件读取器。 文件阅读器与文件 **input.txt** 链接。 在上面的示例中,我们创建了一个名为`输入`的文件读取器。 文件读取器与文件 **input.txt** 链接。
```java ```java
FileInputStream input = new FileInputStream("input.txt"); FileInputStream input = new FileInputStream("input.txt");
...@@ -162,15 +162,15 @@ The character encoding of input2: UTF8 ...@@ -162,15 +162,15 @@ The character encoding of input2: UTF8
### close()方法 ### close()方法
要关闭文件阅读器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器读取数据。 要关闭文件读取器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器读取数据。
* * * * * *
## FileReader 的其他方法 ## FileReader 的其他方法
| 方法 | 描述 | | 方法 | 描述 |
| `ready()` | 检查文件阅读器是否准备好阅读 | | `ready()` | 检查文件读取器是否准备好阅读 |
| `mark()` | 标记文件读取器中已读取数据的位置 | | `mark()` | 标记文件读取器中已读取数据的位置 |
| `reset()` | 将控件返回到阅读器中设置标记的位置 | | `reset()` | 将控件返回到读取器中设置标记的位置 |
要了解更多信息,请访问 [Java FileReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileReader.html "Java FileReader (official Java documentation)") 要了解更多信息,请访问 [Java FileReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileReader.html "Java FileReader (official Java documentation)")
\ No newline at end of file
...@@ -87,7 +87,7 @@ public class Main { ...@@ -87,7 +87,7 @@ public class Main {
} }
``` ```
在上面的示例中,我们创建了一个名为`输出`的文件编写器。 输出阅读器与 **output.txt** 文件链接。 在上面的示例中,我们创建了一个名为`输出`的文件编写器。 输出读取器与 **output.txt** 文件链接。
```java ```java
FileWriter output = new FileWriter("output.txt"); FileWriter output = new FileWriter("output.txt");
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
## 创建一个 BufferedReader ## 创建一个 BufferedReader
为了创建一个`BufferedReader`,我们必须首先导入`java.io.BuferedReader`包。 导入软件包后,就可以创建阅读器。 为了创建一个`BufferedReader`,我们必须首先导入`java.io.BuferedReader`包。 导入软件包后,就可以创建读取器。
```java ```java
// Creates a FileReader // Creates a FileReader
...@@ -54,7 +54,7 @@ BufferedReader buffer = new BufferedReader(file, int size); ...@@ -54,7 +54,7 @@ BufferedReader buffer = new BufferedReader(file, int size);
### read()方法 ### read()方法
* `read()`-从读取器的内部缓冲区读取单个字符 * `read()`-从读取器的内部缓冲区读取单个字符
* `read(char[] array)`-从阅读器读取字符并将其存储在指定的数组中 * `read(char[] array)`-从读取器读取字符并将其存储在指定的数组中
* `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中 * `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中
例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。 例如,假设我们有一个名为 **input.txt** 的文件,其内容如下。
...@@ -105,7 +105,7 @@ Data in the file: ...@@ -105,7 +105,7 @@ Data in the file:
This is a line of text inside the file. This is a line of text inside the file.
``` ```
在上面的示例中,我们创建了一个名为`输入`的缓冲读取器。 缓冲的阅读器与 **input.txt** 文件链接。 在上面的示例中,我们创建了一个名为`输入`的缓冲读取器。 缓冲的读取器与 **input.txt** 文件链接。
```java ```java
FileReader file = new FileReader("input.txt"); FileReader file = new FileReader("input.txt");
...@@ -179,8 +179,8 @@ is a line of text inside the file. ...@@ -179,8 +179,8 @@ is a line of text inside the file.
## BufferedReader 的其他方法 ## BufferedReader 的其他方法
| 方法 | 描述 | | 方法 | 描述 |
| `ready()` | 检查文件阅读器是否准备好阅读 | | `ready()` | 检查文件读取器是否准备好阅读 |
| `mark()` | 标记读取器中已读取数据的位置 | | `mark()` | 标记读取器中已读取数据的位置 |
| `reset()` | 将控件返回到阅读器中设置标记的位置 | | `reset()` | 将控件返回到读取器中设置标记的位置 |
要了解更多信息,请访问 [Java BufferedReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/BufferedReader.html "Java BufferedReader (official Java documentation)") 要了解更多信息,请访问 [Java BufferedReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/BufferedReader.html "Java BufferedReader (official Java documentation)")
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
## 创建一个 StringReader ## 创建一个 StringReader
为了创建一个`StringReader`,我们必须首先导入`java.io.StringReader`包。 导入包后,就可以创建字符串阅读器。 为了创建一个`StringReader`,我们必须首先导入`java.io.StringReader`包。 导入包后,就可以创建字符串读取器。
```java ```java
// Creates a StringReader // Creates a StringReader
...@@ -34,7 +34,7 @@ StringReader input = new StringReader(String data); ...@@ -34,7 +34,7 @@ StringReader input = new StringReader(String data);
### read()方法 ### read()方法
* `read()`-从字符串读取器读取单个字符 * `read()`-从字符串读取器读取单个字符
* `read(char[] array)`-从阅读器读取字符并将其存储在指定的数组中 * `read(char[] array)`-从读取器读取字符并将其存储在指定的数组中
* `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中 * `read(char[] array, int start, int length)`-从读取器中读取等于`长度`的字符数,并从位置`开始`开始存储在指定的数组中
* * * * * *
...@@ -86,7 +86,7 @@ StringReader input = new StringReader(data); ...@@ -86,7 +86,7 @@ StringReader input = new StringReader(data);
为了从字符串中读取数据,我们使用了`read()`方法。 为了从字符串中读取数据,我们使用了`read()`方法。
在此,该方法从阅读器读取一个字符数组,并将其存储在指定的数组中。 在此,该方法从读取器读取一个字符数组,并将其存储在指定的数组中。
* * * * * *
...@@ -136,21 +136,21 @@ Data after skipping 5 characters: ...@@ -136,21 +136,21 @@ Data after skipping 5 characters:
is the text read from the StringReader is the text read from the StringReader
``` ```
在上面的示例中,我们使用`skip()`方法从字符串读取器中跳过 5 个字符。 因此,从原始字符串阅读器中跳过了字符`'T'``'h'``'i'``'s'``' '` 在上面的示例中,我们使用`skip()`方法从字符串读取器中跳过 5 个字符。 因此,从原始字符串读取器中跳过了字符`'T'``'h'``'i'``'s'``' '`
* * * * * *
### close()方法 ### close()方法
要关闭字符串阅读器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器从字符串读取数据。 要关闭字符串读取器,我们可以使用`close()`方法。 调用`close()`方法后,我们将无法使用读取器从字符串读取数据。
* * * * * *
## StringReader 的其他方法 ## StringReader 的其他方法
| 方法 | 描述 | | 方法 | 描述 |
| `ready()` | 检查字符串阅读器是否准备好被读取 | | `ready()` | 检查字符串读取器是否准备好被读取 |
| `mark()` | 标记读取器中已读取数据的位置 | | `mark()` | 标记读取器中已读取数据的位置 |
| `reset()` | 将控件返回到阅读器中设置标记的位置 | | `reset()` | 将控件返回到读取器中设置标记的位置 |
要了解更多信息,请访问 [Java StringReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/io/StringReader.html "Java StringReader (official Java documentation)") 要了解更多信息,请访问 [Java StringReader(Java 官方文档)](https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/io/StringReader.html "Java StringReader (official Java documentation)")
\ No newline at end of file
...@@ -36,7 +36,7 @@ You entered: 10 ...@@ -36,7 +36,7 @@ You entered: 10
* * * * * *
在此程序中,创建了`Scanner`类的对象`阅读器`以从标准输入(HTG1)中获取输入。 在此程序中,创建了`Scanner`类的对象`读取器`以从标准输入(HTG1)中获取输入。
然后,将打印`Enter a number`提示,以向用户提供有关下一步操作的可视提示。 然后,将打印`Enter a number`提示,以向用户提供有关下一步操作的可视提示。
......
...@@ -31,7 +31,7 @@ public class Array { ...@@ -31,7 +31,7 @@ public class Array {
在上面的程序中,for-each 循环用于迭代给定数组`数组` 在上面的程序中,for-each 循环用于迭代给定数组`数组`
它访问`数组`中的每个`元素`并使用`println()`打印。 它访问`数组`中的每个`element`并使用`println()`打印。
* * * * * *
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
#### 在本教程中,我们将学习如何用 Java 复制文件。 #### 在本教程中,我们将学习如何用 Java 复制文件。
[Java File](/java-programming/file "Java File Class") 类不提供任何将一个文件复制到另一个文件的方法。 但是,我们可以使用 [Java I / O 流](/java-programming/io-streams "Java I/O Streams")从一个文件读取内容并写入另一个文件。 [Java File](/java-programming/file "Java File Class") 类不提供任何将一个文件复制到另一个文件的方法。 但是,我们可以使用 [Java I/O 流](/java-programming/io-streams "Java I/O Streams")从一个文件读取内容并写入另一个文件。
* * * * * *
### 示例:使用 I / O 流复制文件 ### 示例:使用 I/O 流复制文件
```java ```java
import java.io.FileInputStream; import java.io.FileInputStream;
......
...@@ -54,9 +54,9 @@ NavigableMap<Key, Value> numbers = new TreeMap<>(); ...@@ -54,9 +54,9 @@ NavigableMap<Key, Value> numbers = new TreeMap<>();
`headMap()`方法返回在指定的`key`(作为参数传递)之前与所有这些键关联的可导航映射的所有条目。 `headMap()`方法返回在指定的`key`(作为参数传递)之前与所有这些键关联的可导航映射的所有条目。
`布尔值`是可选参数。 其默认值为`false` `booleanValue`是可选参数。 其默认值为`false`
如果将`true`作为`布尔值`传递,则该方法返回与所有在指定的`key`之前的所有密钥相关联的条目,包括与指定的`key` 如果将`true`作为`booleanValue`传递,则该方法返回与所有在指定的`key`之前的所有密钥相关联的条目,包括与指定的`key`
* * * * * *
...@@ -64,9 +64,9 @@ NavigableMap<Key, Value> numbers = new TreeMap<>(); ...@@ -64,9 +64,9 @@ NavigableMap<Key, Value> numbers = new TreeMap<>();
`tailMap()`方法返回与指定键`key`(作为参数传递)之后的所有那些键相关联的可导航映射的所有条目,包括与指定`key`相关的条目 。 `tailMap()`方法返回与指定键`key`(作为参数传递)之后的所有那些键相关联的可导航映射的所有条目,包括与指定`key`相关的条目 。
`布尔值`是可选参数。 其默认值为`true` `booleanValue`是可选参数。 其默认值为`true`
如果`false`作为`布尔值`传递,则该方法将返回指定的`key`之后与这些密钥相关的所有条目,而不包括与指定的`key` 如果`false`作为`booleanValue`传递,则该方法将返回指定的`key`之后与这些密钥相关的所有条目,而不包括与指定的`key`
* * * * * *
......
...@@ -427,9 +427,9 @@ Updated TreeMap: {Second=2} ...@@ -427,9 +427,9 @@ Updated TreeMap: {Second=2}
`headMap()`方法返回指定的`key`(作为参数传递)之前的树图的所有键/值对。 `headMap()`方法返回指定的`key`(作为参数传递)之前的树图的所有键/值对。
`布尔值`参数是可选的。 其默认值为`false` `booleanValue`参数是可选的。 其默认值为`false`
如果`true`作为`布尔值`传递,则该方法还包括`key`的键/值对,该键/值对作为参数传递。 如果`true`作为`booleanValue`传递,则该方法还包括`key`的键/值对,该键/值对作为参数传递。
例如: 例如:
...@@ -471,9 +471,9 @@ With boolean value: {First=1, Fourth=4} ...@@ -471,9 +471,9 @@ With boolean value: {First=1, Fourth=4}
`tailMap()`方法返回从指定的`key`(作为参数传递)开始的树形图的所有键/值对。 `tailMap()`方法返回从指定的`key`(作为参数传递)开始的树形图的所有键/值对。
`布尔值`是可选参数。 其默认值为`true` `booleanValue`是可选参数。 其默认值为`true`
如果`false`作为`布尔值`传递,则该方法不包括指定的`key`的键/值对。 如果`false`作为`booleanValue`传递,则该方法不包括指定的`key`的键/值对。
例如: 例如:
......
# Java LinkedHashSet # Java `LinkedHashSet`
> 原文: [https://www.programiz.com/java-programming/linkedhashset](https://www.programiz.com/java-programming/linkedhashset) > 原文: [https://www.programiz.com/java-programming/linkedhashset](https://www.programiz.com/java-programming/linkedhashset)
#### 在本教程中,我们将借助示例学习 Java LinkedHashSet 类及其方法。 #### 在本教程中,我们将借助示例学习 Java `LinkedHashSet`类及其方法。
Java 集合框架的`LinkedHashSet`类提供哈希表和链接列表数据结构的功能。 Java 集合框架的`LinkedHashSet`类提供哈希表和链接列表数据结构的功能。
它实现了 [Set 接口](/java-programming/set "Java Set Interface") 它实现了[`Set`接口](/java-programming/set "Java Set Interface")
![Java LinkedHastSet class implements the Set interface.](img/673bb447eaa899d83bf212523a666be1.png) ![Java LinkedHastSet class implements the Set interface.](img/673bb447eaa899d83bf212523a666be1.png)
`LinkedHashSet`的元素存储在类似于 [HashSet](/java-programming/hashset "Java HashSet Class") 的哈希表中。 `LinkedHashSet`的元素存储在类似于[`HashSet`](/java-programming/hashset "Java HashSet Class")的哈希表中。
但是,链接哈希集在内部为其所有元素维护一个双链表。 链表定义了在哈希表中插入元素的顺序。 但是,链接哈希集在内部为其所有元素维护一个双链表。 链表定义了在哈希表中插入元素的顺序。
* * * * * *
## 创建一个 LinkedHashSet ## 创建一个`LinkedHashSet`
为了创建链接的哈希集,我们必须首先导入`java.util.LinkedHashSet`包。 为了创建链接的哈希集,我们必须首先导入`java.util.LinkedHashSet`包。
...@@ -29,10 +29,10 @@ LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75); ...@@ -29,10 +29,10 @@ LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75);
在这里,我们创建了一个名为`number`的链接哈希集。 在这里,我们创建了一个名为`number`的链接哈希集。
注意,部分`new LinkedHashSet<>(8, 0.75)`。 在此,第一个参数是**容量**,第二个参数是 **loadFactor** 注意,部分`new LinkedHashSet<>(8, 0.75)`。 在此,第一个参数是`capcity`,第二个参数是`loadFactor`
* **容量**-此哈希集的容量为 8。意味着,它可以存储 8 个元素。 * **`capcity`**-此哈希集的容量为 8。意味着,它可以存储 8 个元素。
* **loadFactor** -此哈希集的负载因子为 0.6。 这意味着,只要我们的哈希表填充了 60%,元素就会移到新哈希表中,其大小是原始哈希表的两倍。 * **`loadFactor`** -此哈希集的负载因子为 0.6。 这意味着,只要我们的哈希表填充了 60%,元素就会移到新哈希表中,其大小是原始哈希表的两倍。
**默认容量和负载系数** **默认容量和负载系数**
...@@ -50,7 +50,7 @@ LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>(); ...@@ -50,7 +50,7 @@ LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>();
* * * * * *
## 从其他集合创建 LinkedHashSet ## 从其他集合创建`LinkedHashSet`
这是我们如何创建包含其他集合的所有元素的链接哈希集。 这是我们如何创建包含其他集合的所有元素的链接哈希集。
...@@ -82,13 +82,13 @@ LinkedHashSet: [2, 4] ...@@ -82,13 +82,13 @@ LinkedHashSet: [2, 4]
* * * * * *
## LinkedHashSet 的方法 ## `LinkedHashSet`的方法
`LinkedHashSet`类提供了一些方法,使我们可以对链接的哈希集执行各种操作。 `LinkedHashSet`类提供了一些方法,使我们可以对链接的哈希集执行各种操作。
* * * * * *
## 将元素插入 LinkedHashSet ## 将元素插入`LinkedHashSet`
* `add()`-将指定的元素插入链接的哈希集 * `add()`-将指定的元素插入链接的哈希集
* `addAll()`-将指定集合的​​所有元素插入到链接的哈希集中 * `addAll()`-将指定集合的​​所有元素插入到链接的哈希集中
...@@ -127,7 +127,7 @@ New LinkedHashSet: [2, 4, 6, 5] ...@@ -127,7 +127,7 @@ New LinkedHashSet: [2, 4, 6, 5]
* * * * * *
## 访问 LinkedHashSet 元素 ## 访问`LinkedHashSet`元素
要访问链接的哈希集的元素,我们可以使用`iterator()`方法。 为了使用此方法,我们必须导入`java.util.Iterator`包。 例如, 要访问链接的哈希集的元素,我们可以使用`iterator()`方法。 为了使用此方法,我们必须导入`java.util.Iterator`包。 例如,
...@@ -171,7 +171,7 @@ LinkedHashSet using Iterator: 2, 5, 6, ...@@ -171,7 +171,7 @@ LinkedHashSet using Iterator: 2, 5, 6,
* * * * * *
## 从 HashSet 中删除元素 ## 从`HashSet`中删除元素
* `remove()`-从链接的哈希集中删除指定的元素 * `remove()`-从链接的哈希集中删除指定的元素
* `removeAll()`-从链接的哈希集中删除所有元素 * `removeAll()`-从链接的哈希集中删除所有元素
...@@ -363,7 +363,7 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true ...@@ -363,7 +363,7 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true
* * * * * *
## LinkedHashSet 的其他方法 ## `LinkedHashSet`的其他方法
| 方法 | 描述 | | 方法 | 描述 |
| `clone()` | 创建`LinkedHashSet`的副本 | | `clone()` | 创建`LinkedHashSet`的副本 |
...@@ -372,11 +372,11 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true ...@@ -372,11 +372,11 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true
| `size()` | 返回`LinkedHashSet`的大小 | | `size()` | 返回`LinkedHashSet`的大小 |
| `clear()` | 从`LinkedHashSet`中删除所有元素 | | `clear()` | 从`LinkedHashSet`中删除所有元素 |
要了解有关`LinkedHashSet`方法的更多信息,请访问 [Java LinkedHashSet(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html) 要了解有关`LinkedHashSet`方法的更多信息,请访问 [Java `LinkedHashSet`(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashSet.html)
* * * * * *
## LinkedHashSet 与。 哈希集 ## `LinkedHashSet`与`HashSet`
`LinkedHashSet``HashSet`都实现`Set`接口。 但是,它们之间存在一些差异。 `LinkedHashSet``HashSet`都实现`Set`接口。 但是,它们之间存在一些差异。
...@@ -388,7 +388,7 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true ...@@ -388,7 +388,7 @@ Is LinkedHashSet2 is a subset of LinkedHashSet1? true
* * * * * *
## LinkedHashSet 与。 树集 ## `LinkedHashSet`与`TreeSet`
以下是`LinkedHashSet``TreeSet`之间的主要区别: 以下是`LinkedHashSet``TreeSet`之间的主要区别:
......
# Java SortedSet 接口 # Java `SortedSet`接口
> 原文: [https://www.programiz.com/java-programming/sortedset](https://www.programiz.com/java-programming/sortedset) > 原文: [https://www.programiz.com/java-programming/sortedset](https://www.programiz.com/java-programming/sortedset)
#### 在本教程中,我们将通过一个示例来学习 Java 中的 SortedSet 接口及其方法。 #### 在本教程中,我们将通过一个示例来学习 Java 中的`SortedSet`接口及其方法。
Java Collections 框架的`SortedSet`接口用于以一组顺序存储元素。 Java 集合框架的`SortedSet`接口用于以一组顺序存储元素。
它扩展了 [Set 接口](/java-programming/set "Java Set Interface") 它扩展了[`Set`接口](/java-programming/set "Java Set Interface")
![The Java SortedSet interface extends the Set interface.](img/77c7227b6da796d6ba63926fb8b75e07.png) ![The Java SortedSet interface extends the Set interface.](img/77c7227b6da796d6ba63926fb8b75e07.png)
* * * * * *
## 实现 SortedSet 的类 ## 实现`SortedSet`的类
为了使用`SortedSet`接口的功能,我们需要使用实现它的`TreeSet`类。 为了使用`SortedSet`接口的功能,我们需要使用实现它的`TreeSet`类。
...@@ -20,7 +20,7 @@ Java Collections 框架的`SortedSet`接口用于以一组顺序存储元素。 ...@@ -20,7 +20,7 @@ Java Collections 框架的`SortedSet`接口用于以一组顺序存储元素。
* * * * * *
## 如何使用 SortedSet ## 如何使用`SortedSet`
要使用`SortedSet`,我们必须首先导入`java.util.SortedSet`包。 要使用`SortedSet`,我们必须首先导入`java.util.SortedSet`包。
...@@ -35,22 +35,22 @@ SortedSet<String> animals = new TreeSet<>(); ...@@ -35,22 +35,22 @@ SortedSet<String> animals = new TreeSet<>();
* * * * * *
## SortedSet 的方法 ## `SortedSet`的方法
`SortedSet`接口包括 [Set 接口](/java-programming/set "Java Set Interface")的所有方法。 这是因为`Set``SortedSet`的超级接口。 `SortedSet`接口包括[`Set`接口](/java-programming/set "Java Set Interface")的所有方法。 这是因为`Set``SortedSet`的超级接口。
除了`Set`接口中包含的方法外,`SortedSet`接口还包括以下方法: 除了`Set`接口中包含的方法外,`SortedSet`接口还包括以下方法:
* **比较器()**-返回一个比较器,可用于对集合中的元素进行排序 * **`comparator()`**-返回一个比较器,可用于对集合中的元素进行排序
* **`first()`**:-返回集合的第一个元素 * **`first()`**:-返回集合的第一个元素
* **`last()`**:-返回集合的最后一个元素 * **`last()`**:-返回集合的最后一个元素
* **headSet(element)**-返回指定元素之前的所有元素 * **`headSet(element)`**-返回指定元素之前的所有元素
* **tailSet(element)**-在指定元素之后(包括指定元素)返回集合中的所有元素 * **`tailSet(element)`**-在指定元素之后(包括指定元素)返回集合中的所有元素
* **subSet(element1,element2)**-返回`element1``element2`之间的所有元素,包括`element1` * **`subSet(element1, element2)`**-返回`element1``element2`之间的所有元素,包括`element1`
* * * * * *
## TreeSet 类中 SortedSet 的实现 ## `TreeSet`类中`SortedSet`的实现
```java ```java
import java.util.SortedSet; import java.util.SortedSet;
......
# Java NavigableSet 接口 # Java `NavigableSet`接口
> 原文: [https://www.programiz.com/java-programming/navigableset](https://www.programiz.com/java-programming/navigableset) > 原文: [https://www.programiz.com/java-programming/navigableset](https://www.programiz.com/java-programming/navigableset)
#### 在本教程中,我们将通过一个示例来学习 Java NavigableSet 接口及其方法。 #### 在本教程中,我们将通过一个示例来学习 Java `NavigableSet`接口及其方法。
Java Collections 框架的`NavigableSet`接口提供了在设置的元素之间导航的功能。 Java 集合框架的`NavigableSet`接口提供了在设置的元素之间导航的功能。
它被视为 [SortedSet](/java-programming/sortedset "Java SortedSet Interface") 的类型。 它被视为 [SortedSet](/java-programming/sortedset "Java SortedSet Interface") 的类型。
* * * * * *
## 实现 NavigableSet 的类 ## 实现`NavigableSet`的类
为了使用`NavigableSet`接口的功能,我们需要使用实现`NavigableSet``TreeSet`类。 为了使用`NavigableSet`接口的功能,我们需要使用实现`NavigableSet``TreeSet`类。
...@@ -18,7 +18,7 @@ Java Collections 框架的`NavigableSet`接口提供了在设置的元素之间 ...@@ -18,7 +18,7 @@ Java Collections 框架的`NavigableSet`接口提供了在设置的元素之间
* * * * * *
## 如何使用 NavigableSet ## 如何使用`NavigableSet`
在 Java 中,我们必须导入`java.util.NavigableSet`包才能使用`NavigableSet`。 导入包后,将按照以下方法创建可导航集。 在 Java 中,我们必须导入`java.util.NavigableSet`包才能使用`NavigableSet`。 导入包后,将按照以下方法创建可导航集。
...@@ -31,7 +31,7 @@ NavigableSet<String> numbers = new TreeSet<>(); ...@@ -31,7 +31,7 @@ NavigableSet<String> numbers = new TreeSet<>();
* * * * * *
## NavigableSet 的方法 ## `NavigableSet`的方法
`NavigableSet`被认为是`SortedSet`的一种。 这是因为`NavigableSet`扩展了`SortedSet`接口。 `NavigableSet`被认为是`SortedSet`的一种。 这是因为`NavigableSet`扩展了`SortedSet`接口。
...@@ -43,27 +43,27 @@ NavigableSet<String> numbers = new TreeSet<>(); ...@@ -43,27 +43,27 @@ NavigableSet<String> numbers = new TreeSet<>();
* * * * * *
### headSet(element,booleanValue) ### `headSet(element, booleanValue)`
`headSet()`方法返回指定`元素`(作为参数传递)之前的可导航集合的所有元素。 `headSet()`方法返回指定`element`(作为参数传递)之前的可导航集合的所有元素。
`布尔值`参数是可选的。 其默认值为`false` `booleanValue`参数是可选的。 其默认值为`false`
如果`true`作为`布尔值`传递,则该方法返回指定元素之前的所有元素,包括指定元素。 如果`true`作为`booleanValue`传递,则该方法返回指定元素之前的所有元素,包括指定元素。
* * * * * *
### tailSet(element,booleanValue) ### `tailSet(element, booleanValue)`
`tailSet()`方法返回包含指定元素的指定`元素`(作为参数传递)之后的可导航集合的所有元素。 `tailSet()`方法返回包含指定元素的指定`element`(作为参数传递)之后的可导航集合的所有元素。
`布尔值`参数是可选的。 其默认值为`true` `booleanValue`参数是可选的。 其默认值为`true`
如果将`false`作为`布尔值`传递,则该方法返回指定元素之后的所有元素,但不包括指定元素。 如果将`false`作为`booleanValue`传递,则该方法返回指定元素之后的所有元素,但不包括指定元素。
* * * * * *
### subSet(e1,bv1,e2,bv2) ### `subSet(e1, bv1, e2, bv2)`
`subSet()`方法返回`e1``e2`之间的所有元素,包括`e1` `subSet()`方法返回`e1``e2`之间的所有元素,包括`e1`
...@@ -88,11 +88,11 @@ NavigableSet<String> numbers = new TreeSet<>(); ...@@ -88,11 +88,11 @@ NavigableSet<String> numbers = new TreeSet<>();
* **`pollFirst()`**:-返回并从集合中删除第一个元素 * **`pollFirst()`**:-返回并从集合中删除第一个元素
* **`pollLast()`**:-返回并从集合中删除最后一个元素 * **`pollLast()`**:-返回并从集合中删除最后一个元素
要了解有关`NavigableSet`的更多信息,请访问 [Java NavigableSet(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html) 要了解有关`NavigableSet`的更多信息,请访问 [Java `NavigableSet`(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html)
* * * * * *
## TreeSet 类中 NavigableSet 的实现 ## `TreeSet`类中`NavigableSet`的实现
```java ```java
import java.util.NavigableSet; import java.util.NavigableSet;
......
# Java TreeSet # Java `TreeSet`
> 原文: [https://www.programiz.com/java-programming/treeset](https://www.programiz.com/java-programming/treeset) > 原文: [https://www.programiz.com/java-programming/treeset](https://www.programiz.com/java-programming/treeset)
#### 在本教程中,我们将借助示例学习 Java TreeSet 类及其各种操作和方法。 #### 在本教程中,我们将借助示例学习 Java `TreeSet`类及其各种操作和方法。
Java 集合框架的`TreeSet`类提供树数据结构的功能。 Java 集合框架的`TreeSet`类提供树数据结构的功能。
它扩展了 [NavigableSet 接口](/java-programming/navigableset "Java NavigableSet Interface") 它扩展了[`NavigableSet`接口](/java-programming/navigableset "Java NavigableSet Interface")
![Java TreeSet class implements the NavigableSet interface.](img/ca7788f4d6f1ba9ee8138ff291fe2025.png) ![Java TreeSet class implements the NavigableSet interface.](img/ca7788f4d6f1ba9ee8138ff291fe2025.png)
...@@ -28,13 +28,13 @@ Java 集合框架的`TreeSet`类提供树数据结构的功能。 ...@@ -28,13 +28,13 @@ Java 集合框架的`TreeSet`类提供树数据结构的功能。
* * * * * *
## TreeSet 的方法 ## `TreeSet`的方法
`TreeSet`类提供了各种方法,使我们可以对设备执行各种操作。 `TreeSet`类提供了各种方法,使我们可以对设备执行各种操作。
* * * * * *
## 将元素插入 TreeSet ## 将元素插入`TreeSet`
* `add()`-将指定的元素插入到集合中 * `add()`-将指定的元素插入到集合中
* `addAll()`-将指定集合的​​所有元素插入集合 * `addAll()`-将指定集合的​​所有元素插入集合
...@@ -74,7 +74,7 @@ New TreeSet: [1, 2, 4, 6] ...@@ -74,7 +74,7 @@ New TreeSet: [1, 2, 4, 6]
* * * * * *
## 访问 TreeSet 元素 ## 访问`TreeSet`元素
要访问树集的元素,我们可以使用`iterator()`方法。 为了使用此方法,我们必须导入`java.util.Iterator`包。 例如, 要访问树集的元素,我们可以使用`iterator()`方法。 为了使用此方法,我们必须导入`java.util.Iterator`包。 例如,
...@@ -154,7 +154,7 @@ Are all elements removed? true ...@@ -154,7 +154,7 @@ Are all elements removed? true
由于`TreeSet`类实现了`NavigableSet`,因此它提供了各种方法来浏览树集的元素。 由于`TreeSet`类实现了`NavigableSet`,因此它提供了各种方法来浏览树集的元素。
### 1\. first()和 last()方法 ### 1\. `first()`和`last()`方法
* `first()`-返回集合的第一个元素 * `first()`-返回集合的第一个元素
* `last()`-返回集合的最后一个元素 * `last()`-返回集合的最后一个元素
...@@ -193,12 +193,12 @@ Last Number: 6 ...@@ -193,12 +193,12 @@ Last Number: 6
* * * * * *
### 2\. ceiling(),floor(),higher()和 lower()方法 ### 2\. `ceiling()`,`floor()`,`higher()`和`lower()`方法
* **upper(element)**-返回大于指定`element`的那些元素中的最低元素。 * **`upper(element)`**-返回大于指定`element`的那些元素中的最低元素。
* **lower(element)**-返回小于指定`element`的那些元素中最大的元素。 * **`lower(element)`**-返回小于指定`element`的那些元素中最大的元素。
* **ceiling(element)**-返回大于指定`元素`的那些元素中的最低元素。 如果通过的`元素`存在于树集中,则它返回作为参数传递的`element` * **`ceiling(element)`**-返回大于指定`element`的那些元素中的最低元素。 如果通过的`element`存在于树集中,则它返回作为参数传递的`element`
* **floor(element)**-返回小于指定`element`的那些元素中最大的元素。 如果传递的`元素`存在于树集中,则它返回作为参数传递的`element` * **`floor(element)`**-返回小于指定`element`的那些元素中最大的元素。 如果传递的`element`存在于树集中,则它返回作为参数传递的`element`
例如: 例如:
...@@ -242,7 +242,7 @@ Using floor: 2 ...@@ -242,7 +242,7 @@ Using floor: 2
* * * * * *
### 3\. pollfirst()和 pollLast()方法 ### 3\. `pollfirst()`和`pollLast()`方法
* `pollFirst()`-返回并从集合中删除第一个元素 * `pollFirst()`-返回并从集合中删除第一个元素
* `pollLast()`-返回并从集合中删除最后一个元素 * `pollLast()`-返回并从集合中删除最后一个元素
...@@ -283,17 +283,17 @@ New TreeSet: [4, 5] ...@@ -283,17 +283,17 @@ New TreeSet: [4, 5]
* * * * * *
### 4\. headSet(),tailSet()和 subSet()方法 ### 4\. `headSet()`,`tailSet()`和`subSet()`方法
* * * * * *
### headSet(element,booleanValue) ### `headSet(element, booleanValue)`
`headSet()`方法返回指定的`元素`(作为参数传递)之前的树集的所有元素。 `headSet()`方法返回指定的`element`(作为参数传递)之前的树集的所有元素。
`布尔值`参数是可选的。 其默认值为`false` `booleanValue`参数是可选的。 其默认值为`false`
如果`true`作为`布尔值`传递,则该方法返回指定元素之前的所有元素,包括指定元素。 如果`true`作为`booleanValue`传递,则该方法返回指定元素之前的所有元素,包括指定元素。
例如: 例如:
...@@ -328,13 +328,13 @@ Using headSet with boolean value: [2, 4, 5] ...@@ -328,13 +328,13 @@ Using headSet with boolean value: [2, 4, 5]
* * * * * *
### tailSet(element,booleanValue) ### `tailSet(element, booleanValue)`
`tailSet()`方法返回包含指定的`元素`的指定`元素`(作为参数传递)之后的树集的所有元素。 `tailSet()`方法返回包含指定的`element`的指定`element`(作为参数传递)之后的树集的所有元素。
`布尔值`参数是可选的。 其默认值为`true` `booleanValue`参数是可选的。 其默认值为`true`
如果`false`作为`布尔值`传递,则该方法返回指定的`元素`之后的所有元素,而不包括指定的`元素` 如果`false`作为`booleanValue`传递,则该方法返回指定的`element`之后的所有元素,而不包括指定的`element`
例如: 例如:
...@@ -369,7 +369,7 @@ Using tailSet with boolean value: [5, 6] ...@@ -369,7 +369,7 @@ Using tailSet with boolean value: [5, 6]
* * * * * *
### subSet(e1,bv1,e2,bv2) ### `subSet(e1, bv1, e2, bv2)`
`subSet()`方法返回`e1``e2`之间的所有元素,包括`e1` `subSet()`方法返回`e1``e2`之间的所有元素,包括`e1`
...@@ -569,16 +569,16 @@ Is TreeSet2 subset of TreeSet1? True ...@@ -569,16 +569,16 @@ Is TreeSet2 subset of TreeSet1? True
* * * * * *
## TreeSet 的其他方法 ## `TreeSet`的其他方法
| 方法 | 描述 | | 方法 | 描述 |
| `clone()` | 创建 TreeSet 的副本 | | `clone()` | 创建`TreeSet`的副本 |
| `contains()` | 在 TreeSet 中搜索指定的元素并返回布尔结果 | | `contains()` | 在`TreeSet`中搜索指定的元素并返回布尔结果 |
| `isEmpty()` | 检查`TreeSet`是否为空 | | `isEmpty()` | 检查`TreeSet`是否为空 |
| `size()` | 返回`TreeSet`的大小 | | `size()` | 返回`TreeSet`的大小 |
| `clear()` | 从`TreeSet`中删除所有元素 | | `clear()` | 从`TreeSet`中删除所有元素 |
要了解更多信息,请访问 [Java TreeSet(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html) 要了解更多信息,请访问 [Java `TreeSet`(Java 官方文档)](https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html)
* * * * * *
...@@ -592,7 +592,7 @@ Is TreeSet2 subset of TreeSet1? True ...@@ -592,7 +592,7 @@ Is TreeSet2 subset of TreeSet1? True
* * * * * *
## TreeSet 比较器 ## `TreeSet`比较器
在以上所有示例中,树集元素都是自然排序的。 但是,我们也可以自定义元素的顺序。 在以上所有示例中,树集元素都是自然排序的。 但是,我们也可以自定义元素的顺序。
...@@ -649,4 +649,4 @@ TreeSet: [Zebra, Horse, Dog, Cat] ...@@ -649,4 +649,4 @@ TreeSet: [Zebra, Horse, Dog, Cat]
然后,我们覆盖`compare()`方法。 现在,该方法将以相反的顺序对元素进行排序。 然后,我们覆盖`compare()`方法。 现在,该方法将以相反的顺序对元素进行排序。
要了解更多信息,请访问 [Java Comparator(Java 官方文档)](https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html) 要了解更多信息,请访问 [Java `Comparator`(Java 官方文档)](https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html)
\ No newline at end of file \ No newline at end of file
...@@ -10,11 +10,11 @@ Java 中的算法是静态方法,可用于对集合执行各种操作。 ...@@ -10,11 +10,11 @@ Java 中的算法是静态方法,可用于对集合执行各种操作。
由于算法可用于各种集合,因此也称为**通用算法** 由于算法可用于各种集合,因此也称为**通用算法**
让我们看一下 collections 框架中可用的不同方法的实现。 让我们看一下集合框架中可用的不同方法的实现。
* * * * * *
## 1.使用 sort()排序 ## 1.使用`sort()`排序
集合框架提供的`sort()`方法用于对元素进行排序。 例如, 集合框架提供的`sort()`方法用于对元素进行排序。 例如,
...@@ -55,7 +55,7 @@ Sorted ArrayList: [2, 3, 4] ...@@ -55,7 +55,7 @@ Sorted ArrayList: [2, 3, 4]
* * * * * *
## 2.使用 shuffle()改组 ## 2.使用`shuffle()`打乱
Java 集合框架的`shuffle()`方法用于破坏数据结构中存在的任何种类的顺序。 它与排序相反。 例如, Java 集合框架的`shuffle()`方法用于破坏数据结构中存在的任何种类的顺序。 它与排序相反。 例如,
...@@ -92,7 +92,7 @@ ArrayList using shuffle: [2, 1, 3] ...@@ -92,7 +92,7 @@ ArrayList using shuffle: [2, 1, 3]
当我们运行程序时,`shuffle()`方法将返回随机输出。 当我们运行程序时,`shuffle()`方法将返回随机输出。
改组算法主要用于需要随机输出的游戏中。 打乱算法主要用于需要随机输出的游戏中。
* * * * * *
...@@ -160,7 +160,7 @@ ArrayList2 using copy(): [0, 0] ...@@ -160,7 +160,7 @@ ArrayList2 using copy(): [0, 0]
* * * * * *
## 4.使用 binarySearch()搜索 ## 4.使用`binarySearch()`搜索
Java 集合框架的`binarySearch()`方法搜索指定的元素。 它返回元素在指定集合中的位置。 例如, Java 集合框架的`binarySearch()`方法搜索指定的元素。 它返回元素在指定集合中的位置。 例如,
......
# Java 迭代器接口 # Java `Iterator`接口
> 原文: [https://www.programiz.com/java-programming/iterator](https://www.programiz.com/java-programming/iterator) > 原文: [https://www.programiz.com/java-programming/iterator](https://www.programiz.com/java-programming/iterator)
#### 在本教程中,我们将通过一个示例来学习 Java Iterator 接口。 #### 在本教程中,我们将通过一个示例来学习 Java `Iterator`接口。
Java 集合框架的`Iterator`接口允许我们访问集合的元素。 它具有子接口`ListIterator` Java 集合框架的`Iterator`接口允许我们访问集合的元素。 它具有子接口`ListIterator`
......
# Java ListIterator 接口 # Java `ListIterator`接口
> 原文: [https://www.programiz.com/java-programming/listiterator](https://www.programiz.com/java-programming/listiterator) > 原文: [https://www.programiz.com/java-programming/listiterator](https://www.programiz.com/java-programming/listiterator)
#### 在本教程中,我们将通过一个示例来学习 Java ListIterator 接口。 #### 在本教程中,我们将通过一个示例来学习 Java `ListIterator`接口。
Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。 Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。
...@@ -16,11 +16,11 @@ Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。 ...@@ -16,11 +16,11 @@ Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。
* * * * * *
## ListIterator 的方法 ## `ListIterator`的方法
`ListIterator`接口提供了可用于对列表元素执行各种操作的方法。 `ListIterator`接口提供了可用于对列表元素执行各种操作的方法。
* `hasNext()`-如果列表中存在一个元素,则返回 true * `hasNext()`-如果列表中存在一个元素,则返回`true`
* `next()`-返回列表的下一个元素 * `next()`-返回列表的下一个元素
* `nextIndex()`返回`next()`方法将返回的元素的索引 * `nextIndex()`返回`next()`方法将返回的元素的索引
* `previous()`-返回列表的前一个元素 * `previous()`-返回列表的前一个元素
...@@ -30,7 +30,7 @@ Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。 ...@@ -30,7 +30,7 @@ Java 集合框架的`ListIterator`接口提供了访问列表元素的功能。
* * * * * *
### 示例 1:ListIterator 的实现 ### 示例 1:`ListIterator`的实现
在下面的示例中,我们在数组列表中实现了`ListIterator`接口的`next()``nextIndex()``hasNext()`方法。 在下面的示例中,我们在数组列表中实现了`ListIterator`接口的`next()``nextIndex()``hasNext()`方法。
...@@ -75,7 +75,7 @@ Is there any next element? true ...@@ -75,7 +75,7 @@ Is there any next element? true
* * * * * *
### 示例 2:ListIterator 的实现 ### 示例 2:`ListIterator`的实现
在下面的示例中,我们在数组列表中实现了`ListIterator`接口的`previous()``previousIndex()`方法。 在下面的示例中,我们在数组列表中实现了`ListIterator`接口的`previous()``previousIndex()`方法。
......
# Java I / O 流 # Java I/O 流
\ No newline at end of file \ No newline at end of file
# Java I / O 流 # Java I/O 流
> 原文: [https://www.programiz.com/java-programming/io-streams](https://www.programiz.com/java-programming/io-streams) > 原文: [https://www.programiz.com/java-programming/io-streams](https://www.programiz.com/java-programming/io-streams)
...@@ -31,7 +31,7 @@ class HelloWorld { ...@@ -31,7 +31,7 @@ class HelloWorld {
根据流包含的数据,可以将其分类为: 根据流包含的数据,可以将其分类为:
* 字节流 * 字节流
* 角色 * 字符
* * * * * *
...@@ -43,12 +43,12 @@ class HelloWorld { ...@@ -43,12 +43,12 @@ class HelloWorld {
要了解更多信息,请访问 要了解更多信息,请访问
* [Java InputStream ](/java-programming/inputstream "Java InputStream Class") * [Java `InputStream`](/java-programming/inputstream "Java InputStream Class")
* [Java OutputStream ](/java-programming/outputstream "Java OutputStream Class") * [Java `OutputStream`](/java-programming/outputstream "Java OutputStream Class")
* * * * * *
### 角色 ### 字符
字符流用于读取和写入单个数据字符。 字符流用于读取和写入单个数据字符。
...@@ -56,5 +56,5 @@ class HelloWorld { ...@@ -56,5 +56,5 @@ class HelloWorld {
To learn more, visit To learn more, visit
* [Java 阅读器类](/java-programming/reader "Java Reader Class") * [Java `Reader`类](/java-programming/reader "Java Reader Class")
* [Java Writer 类](/java-programming/writer "Java Writer Class") * [Java `Writer`类](/java-programming/writer "Java Writer Class")
\ No newline at end of file \ No newline at end of file
# Java InputStream # Java `InputStream`
> 原文: [https://www.programiz.com/java-programming/inputstream](https://www.programiz.com/java-programming/inputstream) > 原文: [https://www.programiz.com/java-programming/inputstream](https://www.programiz.com/java-programming/inputstream)
#### 在本教程中,我们将借助一个示例来学习 Java InputStream 类及其方法。 #### 在本教程中,我们将借助一个示例来学习 Java `InputStream`类及其方法。
`java.io`包的`InputStream`类是一个抽象超类,它表示字节的输入流。 `java.io`包的`InputStream`类是一个抽象超类,它表示字节的输入流。
...@@ -10,13 +10,13 @@ ...@@ -10,13 +10,13 @@
* * * * * *
## InputStream 的子类 ## `InputStream`的子类
为了使用`InputStream`的功能,我们可以使用其子类。 他们之中有一些是: 为了使用`InputStream`的功能,我们可以使用其子类。 他们之中有一些是:
* [FileInputStream](/java-programming/fileinputstream "Java FileInputStream Class") * [`FileInputStream`](/java-programming/fileinputstream "Java FileInputStream Class")
* [ByteArrayInputStream](/java-programming/bytearrayinputstream "Java ByteArrayInputStream Class") * [`ByteArrayInputStream`](/java-programming/bytearrayinputstream "Java ByteArrayInputStream Class")
* [ObjectInputStream](https://www.programiz.com/java-programming/objectinputstream) * [`ObjectInputStream`](https://www.programiz.com/java-programming/objectinputstream)
![Java InputStream subclasses are FileInputStream, ByteArrayInputStream and ObjectInputStream.](img/db44222dae8950dcbbc5dd098bcf1a63.png "Java InputStream Class") ![Java InputStream subclasses are FileInputStream, ByteArrayInputStream and ObjectInputStream.](img/db44222dae8950dcbbc5dd098bcf1a63.png "Java InputStream Class")
...@@ -24,9 +24,9 @@ ...@@ -24,9 +24,9 @@
* * * * * *
## 创建一个 InputStream ## 创建一个`InputStream`
为了创建 InputStream,我们必须首先导入`java.io.InputStream`包。 导入包后,就可以创建输入流。 为了创建`InputStream`,我们必须首先导入`java.io.InputStream`包。 导入包后,就可以创建输入流。
```java ```java
// Creates an InputStream // Creates an InputStream
...@@ -39,7 +39,7 @@ InputStream object1 = new FileInputStream(); ...@@ -39,7 +39,7 @@ InputStream object1 = new FileInputStream();
* * * * * *
## InputStream 的方法 ## `InputStream`的方法
`InputStream`类提供了由其子类实现的不同方法。 以下是一些常用方法: `InputStream`类提供了由其子类实现的不同方法。 以下是一些常用方法:
...@@ -54,11 +54,11 @@ InputStream object1 = new FileInputStream(); ...@@ -54,11 +54,11 @@ InputStream object1 = new FileInputStream();
* * * * * *
## 示例:使用 FileInputStream 的 InputStream ## 示例:使用`FileInputStream`的`InputStream`
这是我们可以使用`FileInputStream`类实现`InputStream`的方法。 这是我们可以使用`FileInputStream`类实现`InputStream`的方法。
假设我们有一个名为 **input.txt** 的文件,其内容如下。 假设我们有一个名为`input.txt`的文件,其内容如下。
```java ```java
This is a line of text inside the file. This is a line of text inside the file.
...@@ -119,4 +119,4 @@ input.read(array); // to read data from the input stream ...@@ -119,4 +119,4 @@ input.read(array); // to read data from the input stream
input.close(); // to close the input stream input.close(); // to close the input stream
``` ```
要了解更多信息,请访问 [Java InputStream(官方 Java 文档)](https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html "Java InputStream (official Java documentation)") 要了解更多信息,请访问 [Java `InputStream`(官方 Java 文档)](https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html "Java InputStream (official Java documentation)")
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册