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
- JDK1.8使用IDEA建立spring專案JDKIdeaSpring
- Dockerfile入門(使用Dockerfile生成jdk1.8映象)DockerJDK
- 【JDK1.8】JUC——AbstractQueuedSynchronizerJDK
- JDK 1.8 文件下載JDK
- JDK1.8之Lambda解析與表示式的使用JDK
- Java併發——ConcurrentHashMap(JDK 1.8)JavaHashMapJDK
- Java集合——HashMap(jdk1.8)JavaHashMapJDK
- Linux安裝JDK1.8LinuxJDK
- linux jdk1.8的部署LinuxJDK
- 使用CentOS 7.5解除安裝自帶jdk安裝自己的JDK1.8CentOSJDK
- centos 6 上安裝jdk1.8 為指定使用者配置jdk版本CentOSJDK
- 總結:JDK1.5-JDK1.8各個新特性JDK
- 原始碼分析–ArrayList(JDK1.8)原始碼JDK
- 原始碼分析–HashSet(JDK1.8)原始碼JDK
- JDK 1.8 新特性學習(Stream)JDK
- JDK1.8 之Lambda表示式JDK
- ArrayList原始碼分析 jdk1.8原始碼JDK
- linux下安裝jdk1.8LinuxJDK
- JDK1.8新特性總結JDK
- LinkedHashMap 原始碼解讀(JDK 1.8)HashMap原始碼JDK
- Linux(CentOS)安裝JDK1.8LinuxCentOSJDK
- LinkedList原始碼分析(jdk1.8)原始碼JDK
- JDK1.8之lambda表示式JDK
- 在ubuntu 中裝jdk1.8UbuntuJDK
- JDK1.8 hashMap原始碼分析JDKHashMap原始碼
- HashMap原始碼分析 JDK1.8HashMap原始碼JDK
- JDK1.8新特性值OptionalJDK
- CentOS 7安裝JDK1.8CentOSJDK
- LinkedList原始碼解析(jdk1.8)原始碼JDK
- ArrayList原始碼分析(JDK1.8)原始碼JDK
- Jdk_API——1.8和Jdk_API1.6下載分享JDKAPI
- JDK1.8 ConcurrentHashMap原始碼閱讀JDKHashMap原始碼
- 【Linux】Centos7.6 安裝JDK 1.8LinuxCentOSJDK
- jdk1.8 lambda表示式入門JDK
- jdk1.8-Lambda函式表示式JDK函式
- JDK 1.8 新特性之Lambda表示式JDK
- 執行緒池原理(JDK1.8)執行緒JDK