stream3

import java.util.function.Consumer;
import java.util.function.IntConsumer;

public class ConsumerTest {

    public void test(Consumer<Integer> consumer) {
        consumer.accept(100);
    }

    public static void main(String[] args) {
        ConsumerTest consumerTest = new ConsumerTest();

        Consumer<Integer> consumer = i -> System.out.println(i);
        IntConsumer intConsumer = i -> System.out.println(i);

        System.out.println(consumer instanceof Consumer);
        System.out.println(intConsumer instanceof IntConsumer);

        consumerTest.test(consumer); // 面向对象方式
        consumerTest.test(consumer::accept); // 函数式方式
        consumerTest.test(intConsumer::accept); // 函数式方式
//        consumerTest.test(intConsumer);
    }
}
public class LambdaTest {

    Runnable r1 = () -> System.out.println(this);

    Runnable r2 = new Runnable() {
        @Override
        public void run() {
            System.out.println(this);
        }
    };

    public static void main(String[] args) {
        LambdaTest lambdaTest = new LambdaTest();

        Thread t1 = new Thread(lambdaTest.r1);
        t1.start();

        Thread t2 = new Thread(lambdaTest.r2);
        t2.start();


    }
}
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class StreamTest {

    public static void main(String[] args) {
        List<String> list = Arrays.asList("hello", "world", "hello world");

        // 讲解Stream<T>与BaseStream<T, S extends BaseStream<T, S>>之间的继承关系
        // NullPointerException nullPointerException = new NullPointerException("my exception");
        // 如果不执行流的close方法,那么onClose的回调是不会执行的

        try (Stream<String> stream = list.stream()) {
            stream.onClose(() -> {
                System.out.println("aaaa");
//                throw new NullPointerException("first exception");
            }).onClose(() -> {
                System.out.println("bbbb");
//                throw new ArithmeticException("second exception");
            }).forEach(System.out::println);
        }
    }
}
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class StreamTest2 {

    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        System.out.println(list.getClass());

//        list.stream().map(i -> 2 * i).forEach(System.out::println);

        Stream<Integer> stream = list.stream();

        System.out.println(stream.getClass());

        Stream stream2 = stream.map(i -> 2 * i);

        System.out.println(stream2.getClass());

        System.out.println("--------");

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

//        list.stream().parallel().forEach(System.out::println);


    }
}
原文地址:https://www.cnblogs.com/koushr/p/5873426.html