java8 lambda表达式学习记录

参考 https://www.cnblogs.com/franson-2016/p/5593080.html

package com.mytest.java8;

import java.util.Arrays;
import java.util.IntSummaryStatistics;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;

/**
 * @author zhangc
 * @since 2019/1/25 10:39
 * java 双冒号
 * 用法: 遍历, 匿名内部类
 * java stream
 *      filter 可以过滤内容
 *      limit 可以限制条数
 *      sort 可以帮助排序
 *      min,max 最大最小,类似比较
 *      map 可以指定处理如String转int ,或者指定要用的字段如Person::age
 *      collect 收集信息,如把一个list 用逗号关联
 *      summaryStatistics 可以统计一组数字:最大最小平均总和等
 **/
public class Colon {
    public static void main(String[] args) {
        List<String> a1 = Arrays.asList("a","b","c","d");
        a1.forEach(x -> printValur(x));


        Consumer<String> consumer = Colon::printValur;
        a1.forEach(x -> consumer.accept(x));

        a1.forEach(System.out::println);


        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("run");
            }
        }).start();

        new Thread(()->{
            System.out.println("run");
            System.out.println("run1");
        }).start(); // ()-> 相当于new+方法参数 和 方法实现


        String[] pl = new String[]{"fds","fds","121","1211111","1233","dkk"};
        //Arrays.sort(pl,(String x,String x1)->(x.compareTo(x1)));
        //Arrays.asList(pl).forEach(x-> System.out.println(x));
        Arrays.sort(pl,Comparable::compareTo);
        Arrays.asList(pl).forEach(x-> System.out.println("张"+x));
        Predicate<String> p1 = (p)->p.length()<5;
        Arrays.asList(pl).stream().filter(p1).limit(3).forEach(x-> System.out.println("filter"+x));

        String[] p2 = new String[]{"fds","fds","121","1211111","1233","dkk"};
        Arrays.asList(p2).stream().sorted(Comparable::compareTo).forEach(x->System.out.println("so"+x));
        String dou = Arrays.asList(p2).stream().sorted(Comparable::compareTo).map(String::toString).collect(Collectors.joining(","));
        System.out.println(dou);

        List<Integer> sta = Arrays.asList(1,2,3,4,5);
        IntSummaryStatistics ins = sta.stream().mapToInt((x)->x).summaryStatistics();
        System.out.println(ins.getAverage() + ":" + ins.getCount() +":" + ins.getSum()+":"+ins.getMax());

    }

    public static void printValur(String str) {
        System.out.println("print value : " + str);
    }
}

猜你喜欢

转载自www.cnblogs.com/zhangchenglzhao/p/10318807.html
今日推荐