首页 java基础 jdk1.8表达式学习

jdk1.8表达式学习

package com.sdream.ls.client; import java.util.*; import jav…

package com.sdream.ls.client;

import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author liyongqiang
 * @title: Test1
 * @description: TODO
 * @date 2019/9/209:43
 */
public class Test1 {

    public static void main(String[] args) {
        List<User> list=new ArrayList<>();
        list.add(new  User("1","张三","一年级",95));
        list.add(new  User("2","李四","二年级",96));
        list.add(new  User("3","王五","三年级",97));
        list.add(new  User("4","朱留","四年级",100));

        //遍历
        list.forEach((o)-> System.out.println(""+o.toString()));
        //遍历
        list.forEach(o-> System.out.println(""+o.toString()));
        //转 hashSet
        Set<User> set1=list.stream().collect(Collectors.toSet());
        //转  hashSet
        Set<String> set2=list.stream().map(User::getName).collect(Collectors.toSet());

        //转treeSet
        TreeSet<String> set3=list.stream().map(User::getName).collect(Collectors.toCollection(TreeSet::new));

        //转 map
        Map<String,String> map1=list.stream().collect(Collectors.toMap(User::getId,User::getLevel));

        //转map
        Map<String,String> map2=list.stream().collect(Collectors.toMap(User::getId,User::getName,(token, token2) -> token));

        //分组
        Map<String,List<User>> map3=list.stream().collect(Collectors.groupingBy(User::getName));

        //分组count

        Map<String,Long> map4=list.stream().collect(Collectors.groupingBy(User::getName,Collectors.counting()));

        //分组求和

        Map<String,Integer>map5=list.stream().collect(Collectors.groupingBy(User::getName,Collectors.summingInt(User::getScore)));


        //过滤条件
        List<User> temp1=list.stream().filter(o->"1".equals(o.getId())).collect(Collectors.toList());

        //多个过滤条件
        Predicate<User> scoFilter=(o)->(o.getScore()>25);
        Predicate<User> clsFilter=(o)->("三年级".equals(o.getLevel()));
        List<User> temp2=list.stream().filter(scoFilter).filter(clsFilter).collect(Collectors.toList());

        //取前多少个
        List<User> temp3=list.stream().limit(2).collect(Collectors.toList());


        //升序排序
        List<User>temp4=list.stream().sorted((u1,u2)->(u1.getScore()-u2.getScore())).collect(Collectors.toList());

        //降序排序
        List<User>temp5=list.stream().sorted((u1,u2)->(u2.getScore()-u1.getScore())).collect(Collectors.toList());

        //升序 第一个
        User user1=list.stream().max((u1,u2)->(u1.getScore()-u2.getScore())).get();


        //降序第一个
        User user2=list.stream().min((u1,u2)->(u1.getScore()-u2.getScore())).get();


        //求和
        int  sum=list.parallelStream().mapToInt(p->p.getScore()).sum();

        IntSummaryStatistics stats=list.stream().mapToInt((x)->x.getScore()).summaryStatistics();

        System.out.printf("最大的数字"+stats.getMax());
        System.out.printf("最小的数字"+stats.getMin());
        System.out.printf("所有数字的综合"+stats.getSum());
        System.out.printf("所有数字的平均值"+stats.getAverage());







    }


}
class User{
    private  String id;
    private String name;
    private  String  level;
    private   int   score;

    public User(String id, String name, String level, int score) {
        this.id = id;
        this.name = name;
        this.level = level;
        this.score = score;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", level='" + level + '\'' +
                ", score=" + score +
                '}';
    }
}
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

26个大小写字母对应的哈希值

26个大小写字母对应的哈希值

大写字母: 小写字母 A 对应的哈希值:65 B 对应的哈希值:66 C 对应的哈希值:67 D 对应的哈希值:68 E...
linux 把文件名字写入到txt

linux 把文件名字写入到txt

1、首先连接上linux主机,进入到需要处理的目录,例如“/”目录。   2、输入:ls -1 > 1....
git 流程开发

git 流程开发

前提条件:不能在 master 分支上修改任何文件。master 分支的变更只能通过 git pull 和 git me...
使用Git将本地文件提交到远程仓库

使用Git将本地文件提交到远程仓库

使用Git将本地文件提交到远程仓库 使用Git将本地文件提交到远程仓库 现在要将本地代码推到git远程仓库保存,可以提交...
将博客搬至CSDN

将博客搬至CSDN

将博客搬至CSDN
返回顶部