<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 8 - `Stream Collectors`類 > 原文: [https://beginnersbook.com/2017/10/java-8-stream-collectors-class-with-examples/](https://beginnersbook.com/2017/10/java-8-stream-collectors-class-with-examples/) 收集器是[最終類](https://beginnersbook.com/2014/07/final-keyword-java-final-variable-method-class/),它擴展了`Object`類。在本教程中,我們將看到使用 [lambda 表達式](https://beginnersbook.com/2017/10/java-lambda-expressions-tutorial-with-examples/),[Java 流](https://beginnersbook.com/2017/10/java-8-stream-tutorial/) 和 Java 8 的其他新功能的 Java 流收集器類的示例。 ```java java.lang.Object | |___java.util.stream.Collectors ``` ## Java - `Stream Collectors groupingBy`和計數示例 在此示例中,我們使用`Collectors`類的`groupingBy()`方法對列表的元素進行分組,并打印列表中每個元素的出現次數。 ```java import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; public class Example { public static void main(String[] args) { List<String> names = Arrays.asList("Jon", "Ajeet", "Steve", "Ajeet", "Jon", "Ajeet"); Map<String, Long> map = names.stream().collect( Collectors.groupingBy( Function.identity(), Collectors.counting() ) ); System.out.println(map); } } ``` 輸出: ```java {Steve=1, Jon=2, Ajeet=3} ``` ## Java - `Stream Collector`將數據提取為`List`的示例 ```java import java.util.stream.Collectors;?? import java.util.List;?? import java.util.ArrayList;?? class Student{?? int id;??? ? String name;??? ? int age;??? ? ??? ? public Student(int id, String name, int age) {?? ? ? ? ? this.id = id;??? ? ? ? this.name = name;??? ? ? ? this.age = age;??? ? }? }?? public class Example {?? ? ?public static void main(String[] args) {??? ? ? ? List<Student> studentlist = new ArrayList<Student>();??? ? ? ?//Adding Students?? ? ? ? studentlist.add(new Student(11,"Jon",22));??? ? ? ? studentlist.add(new Student(22,"Steve",18));??? ? ? ? studentlist.add(new Student(33,"Lucy",22));??? ? ? ? studentlist.add(new Student(44,"Sansa",23));??? ? ? ? studentlist.add(new Student(55,"Maggie",18));??? ? ? ??? ? ? ? //Fetching student names as List? ? ? ? List<String> names = studentlist.stream() .map(n->n.name) .collect(Collectors.toList()); System.out.println(names);? ? ? ??? ? }?? } ``` 輸出: ```java [Jon, Steve, Lucy, Sansa, Maggie] ``` ## Java 收集器示例 - 將數據收集為集合 在這個例子中,我們將學生列表轉換為[流](https://beginnersbook.com/2017/10/java-8-stream-tutorial/),然后我們應用[ Java `Stream`過濾器](https://beginnersbook.com/2017/10/java-8-stream-filter/)從流中獲取所選記錄,之后我們將使用`Collectors.toSet()`方法,將該流轉換為集合。 ```java import java.util.stream.Collectors;?? import java.util.List;?? import java.util.Set;? import java.util.ArrayList;?? class Student{??? ? int id;??? ? String name;?? int age;??? ? ??? ? public Student(int id, String name, int age) {??? ? ? ? this.id = id;??? ? ? ? this.name = name;??? ? ? ? this.age = age;??? ? }? }?? public class Example {??? ? public static void main(String[] args) {??? ? ? ? List<Student> studentlist = new ArrayList<Student>();??? ? ? ? //Adding Students?? ? ? ? studentlist.add(new Student(11,"Jon",22));??? ? ? ? studentlist.add(new Student(22,"Steve",18));??? ? ? ? studentlist.add(new Student(33,"Lucy",22));??? ? ? ? studentlist.add(new Student(44,"Sansa",23));??? ? ? ? studentlist.add(new Student(55,"Maggie",18));??? ? ? ??? ? ? ? //Fetching student data as a Set? ? ? ? Set<Student> students = studentlist.stream() .filter(n-> n.id>22) .collect(Collectors.toSet()); //Iterating Set? ? ? ? for(Student stu : students) { System.out.println(stu.id+" "+stu.name+" "+stu.age); }? ? ? ??? ? }? } ``` 輸出: ```java 44 Sansa 23 33 Lucy 22 55 Maggie 18 ``` ## Java 收集器示例 - 使用`averageInt()`方法獲取學生的平均年齡 ```java import java.util.stream.Collectors;?? import java.util.List;?? import java.util.ArrayList;? class Student{?? int id;?? String name;?? int age; public Student(int id, String name, int age) {?? this.id = id;?? this.name = name;? ? this.age = age;?? }? }?? public class Example {?? public static void main(String[] args) {?? List<Student> studentlist = new ArrayList<Student>();?? //Adding Students? studentlist.add(new Student(11,"Jon",22));?? studentlist.add(new Student(22,"Steve",18));?? studentlist.add(new Student(33,"Lucy",22));?? studentlist.add(new Student(44,"Sansa",23));?? studentlist.add(new Student(55,"Maggie",18)); //Getting the average Age Double avgAge = studentlist.stream()?? .collect(Collectors.averagingInt(s->s.age));?? System.out.println("Average Age of Students is: "+avgAge); }?? } ``` 輸出: ```java Average Age of Students is: 20.6 ``` 我已經展示了 Java `Collectors`類的極少數方法的例子。要獲得完整的方法列表,請參閱 javadoc:[Java 8 `Stream Collectors` - JavaDoc](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html)
                  <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>

                              哎呀哎呀视频在线观看