<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Java 流映射 原文:http://zetcode.com/java/streammap/ Java 流映射教程顯示了如何在 Java 流上執行映射操作。 ## Java 流 Java 流是來自源的支持聚合操作的一系列元素。 流不存儲元素。 元素是按需計算的。 元素是從數據源(如集合,數組或 I/O 資源)中消耗的。 流聚合操作類似于 SQL 操作。 我們可以對流應用過濾,映射,縮小,匹配,搜索或排序操作。 流允許鏈接多個流操作。 與使用外部迭代的集合不同,流在內部進行迭代。 ## Java 流映射 我們可以將流元素更改為新的流; 原始來源未修改。 `map()`方法返回一個流,該流由將給定功能應用于流的元素的結果組成。 `map()`是一個中間操作。 ## Java 流映射示例 在第一個示例中,我們將算術運算映射到值列表上。 `JavaStreamMapEx.java` ```java package com.zetcode; import java.util.Arrays; import java.util.stream.IntStream; public class JavaStreamMapEx { public static void main(String[] args) { var nums = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8); var squares = nums.map(e -> e * e).toArray(); System.out.println(Arrays.toString(squares)); } } ``` 在示例中,我們創建了一個整數流。 使用`map()`方法,我們對這些值進行算術運算,然后將它們轉換為數組。 ```java [1, 4, 9, 16, 25, 36, 49, 64] ``` 這是輸出。 ## Java 流映射示例 II 在下面的示例中,我們在一個流中使用`map()`和`mapToInt()`方法。 `JavaStreamMapEx2.java` ```java package com.zetcode; import java.util.Random; import java.util.stream.Stream; public class JavaStreamMapEx2 { public static void main(String[] args) { Stream.generate(new Random()::nextDouble) .map(e -> (e * 100)) .mapToInt(Double::intValue) .limit(5) .forEach(System.out::println); } } ``` 該示例生成五個隨機 double 值。 使用映射方法,將每個隨機生成的值乘以 100 并轉換為整數。 ```java 66 25 18 35 47 ``` 這是一個示例輸出。 ## Java 流映射示例 III 在下一個示例中,我們將自定義方法映射到字符串流上。 `JavaStreamMapEx3.java` ```java package com.zetcode; import java.util.stream.Stream; public class JavaStreamMapEx3 { public static void main(String[] args) { var words = Stream.of("cardinal", "pen", "coin", "globe"); words.map(JavaStreamMapEx3::capitalize).forEach(System.out::println); } private static String capitalize(String word) { word = word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase(); return word; } } ``` 該示例將流中的每個單詞大寫。 ```java Cardinal Pen Coin Globe ``` 這是輸出。 ## Java 流映射示例 IV 在下一個示例中,我們使用`map`方法將 CSV 文件中的值讀取到列表中。 `src/resources/numbers.csv` ```java 2,3,5,6,1,0 9,5,6,3,2,1 ``` 在`numbers.csv`文件中有這些值。 `JavaStreamMapEx4.java` ```java package com.zetcode; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.Collection; import java.util.stream.Collectors; public class JavaStreamMapEx4 { public static void main(String[] args) throws IOException { var lines = Files.readAllLines(Path.of("src/resources/numbers.csv")); var vals = lines.stream().map(line-> Arrays.asList(line.split(","))) .flatMap(Collection::stream).mapToInt(Integer::valueOf) .boxed().collect(Collectors.toList()); System.out.println(vals); } } ``` 首先,我們將 CSV 文件讀入字符串列表。 然后,我們從列表中創建一個流,并應用映射方法以最后獲得一個整數列表。 ```java var lines = Files.readAllLines(Path.of("src/resources/numbers.csv")); ``` 使用`Files.readAllLines()`,我們將文件的所有行讀入字符串列表。 ```java var vals = lines.stream().map(line-> Arrays.asList(line.split(","))) .flatMap(Collection::stream).mapToInt(Integer::valueOf) .boxed().collect(Collectors.toList()); ``` 我們從列表中創建一個流,將字符串拆分為字符串編號列表。 列表被展平,轉換為整數并收集到最終列表中。 ```java [2, 3, 5, 6, 1, 0, 9, 5, 6, 3, 2, 1] ``` 這是輸出。 ## Java 流映射示例 V 在下一個示例中,我們對用戶對象列表使用`map`操作。 `User.java` ```java package com.zetcode; public class User { private String name; private String occupation; public User(String name, String occupation) { this.name = name; this.occupation = occupation; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOccupation() { return occupation; } public void setOccupation(String occupation) { this.occupation = occupation; } } ``` 這是`User`類。 `JavaStreamMapEx5.java` ```java package com.zetcode; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public class JavaStreamMapEx5 { public static void main(String[] args) { var users = List.of(new User("Peter", "programmer"), new User("Jane", "accountant"), new User("Robert", "teacher"), new User("Milan", "programmer"), new User("Jane", "designer")); var userNames = users.stream().map(user -> user.getName()).sorted() .collect(Collectors.toList()); System.out.println(userNames); var occupations = users.stream().map(user -> user.getOccupation()) .sorted(Comparator.reverseOrder()).distinct() .collect(Collectors.toList()); System.out.println(occupations); } } ``` 該示例以相反的順序從用戶列表和唯一職業列表中創建排序名稱列表。 ```java [Jane, Jane, Milan, Peter, Robert] [teacher, programmer, designer, accountant] ``` 這是輸出。 在本教程中,我們已經使用 Java 流映射操作。 您可能也對相關教程感興趣: [Java 流](/lang/java/streams/) , [Java 流歸約](/java/streamreduce/) , [Java 流過濾器](/java/streamfilter/), [Java8 `forEach`教程](/articles/java8foreach/), 和[用 Java 過濾列表](/articles/javafilterlist/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看