JDK 1.8收集器使用
實體類定義:
@Data
public class User {
private String userName;
private int age;
public User() {
}
public User(String userName, int age) {
this.userName = userName;
this.age = age;
}
}
收集器使用案例:
public static void main(String[] args) {
List<User> list = new ArrayList<User>(
Arrays.asList(
new User("TangLingYun", 28),
new User("TangLingYun1", 21),
new User("TangLingYun2", 22),
new User("TangLingYun4", 22),
new User("TangLingYun3", 23)));
// 資料提取
TreeSet<Integer> treeSet = list.stream().map(User::getAge).collect(Collectors.toCollection(TreeSet::new));
System.err.println(treeSet);
// 聚合函式
IntSummaryStatistics intSummaryStatistics = list.stream().collect(Collectors.summarizingInt(User::getAge));
System.err.println(intSummaryStatistics);
// 分塊 資料篩選
Map<Boolean, List<User>> map = list.stream().collect(Collectors.partitioningBy(u -> u.getAge() < 28));
System.err.println(map);
// 分組
Map<Integer, List<User>> collect = list.stream().collect(Collectors.groupingBy(User::getAge));
System.err.println(collect);
// 分組 個數
Map<Integer, Long> collect2 = list.stream().collect(Collectors.groupingBy(User::getAge,Collectors.counting()));
System.err.println(collect2);
}
輸出結果:
[21, 22, 23, 28]
IntSummaryStatistics{count=5, sum=116, min=21, average=23.200000, max=28}
{false=[User@2d554825], true=[User@68837a77, User@6be46e8f, User@3567135c, User@327471b5]}
{21=[User@68837a77], 22=[User@6be46e8f, User@3567135c], 23=[User@327471b5], 28=[User@2d554825]}
{21=1, 22=2, 23=1, 28=1}
相關文章
- jdk-HashMap-1.8JDKHashMap
- JDK 1.8 文件下載JDK
- 【JDK1.8】JUC——AbstractQueuedSynchronizerJDK
- Dockerfile入門(使用Dockerfile生成jdk1.8映象)DockerJDK
- HashMap原始碼分析(JDK 1.8)HashMap原始碼JDK
- Java集合——HashMap(jdk1.8)JavaHashMapJDK
- Ubuntu安裝JDK1.8UbuntuJDK
- ConcurrentHashMap解析(JDK1.8)HashMapJDK
- JDK1.8之Lambda解析與表示式的使用JDK
- JDK1.6中垃圾收集器JDK
- 使用CentOS 7.5解除安裝自帶jdk安裝自己的JDK1.8CentOSJDK
- centos 6 上安裝jdk1.8 為指定使用者配置jdk版本CentOSJDK
- JDK1.8之lambda表示式JDK
- JDK1.8 hashMap原始碼分析JDKHashMap原始碼
- JDK1.8 之Lambda表示式JDK
- HashMap原始碼分析 JDK1.8HashMap原始碼JDK
- JDK1.8新特性值OptionalJDK
- Java併發——ConcurrentHashMap(JDK 1.8)JavaHashMapJDK
- ArrayList原始碼分析(JDK1.8)原始碼JDK
- 原始碼分析–HashSet(JDK1.8)原始碼JDK
- JDK 1.8 新特性學習(Stream)JDK
- 原始碼分析–ArrayList(JDK1.8)原始碼JDK
- JDK1.8新特性總結JDK
- 在ubuntu 中裝jdk1.8UbuntuJDK
- linux jdk1.8的部署LinuxJDK
- Linux安裝JDK1.8LinuxJDK
- CentOS 7安裝JDK1.8CentOSJDK
- ArrayList原始碼分析 jdk1.8原始碼JDK
- JDK1.8中HashMap實現JDKHashMap
- 總結:JDK1.5-JDK1.8各個新特性JDK
- Jdk_API——1.8和Jdk_API1.6下載分享JDKAPI
- JDK1.8 原始碼分析(十) -- TreeMapJDK原始碼
- JDK1.8新特性--Lambda表示式JDK
- Linux(CentOS)安裝JDK1.8LinuxCentOSJDK
- jdk1.8新特性:Lambda表示式JDK
- LinkedList原始碼分析(jdk1.8)原始碼JDK
- JDK1.8原始碼分析之HashMapJDK原始碼HashMap
- jdk1.8Lambda函式表示式JDK函式