|
@@ -0,0 +1,115 @@
|
|
|
+package com.sf.javase.day22;
|
|
|
+
|
|
|
+import com.sf.javase.day21.Product;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+
|
|
|
+import javax.xml.transform.Source;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.function.BiConsumer;
|
|
|
+import java.util.function.Consumer;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.function.Supplier;
|
|
|
+import java.util.stream.Stream;
|
|
|
+
|
|
|
+public class T {
|
|
|
+ @Test
|
|
|
+ public void t1(){
|
|
|
+ ////1 对象的引用 :: 实例方法名
|
|
|
+ Arrays.asList("a","b","c","d").forEach(System.out::println);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t2(){
|
|
|
+ Supplier<Double> supplier = new Supplier<Double>() {
|
|
|
+ @Override
|
|
|
+ public Double get() {
|
|
|
+ return Math.random();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ supplier = () -> Math.random(); //昨天
|
|
|
+
|
|
|
+ supplier = Math::random; // 现在
|
|
|
+ System.out.println(supplier.get());
|
|
|
+ }
|
|
|
+
|
|
|
+// 构造器
|
|
|
+ @Test
|
|
|
+ public void t3(){
|
|
|
+ Supplier<Product> supplier = new Supplier<Product>() {
|
|
|
+ @Override
|
|
|
+ public Product get() {
|
|
|
+ return new Product();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ // 类名 :: new 构造器
|
|
|
+ supplier = () -> new Product();
|
|
|
+ supplier = Product::new;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 函数式接口
|
|
|
+ @Test
|
|
|
+ public void t4(){
|
|
|
+ Function<String, Integer> function = new Function<String, Integer>() {
|
|
|
+ @Override
|
|
|
+ public Integer apply(String s) {
|
|
|
+ return s.length();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ function = (s) -> s.length();
|
|
|
+ function = String::length;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t5(){
|
|
|
+ Function<Product, String> function = new Function<Product, String>() {
|
|
|
+ @Override
|
|
|
+ public String apply(Product product) {
|
|
|
+ return product.getName();
|
|
|
+ }
|
|
|
+ };
|
|
|
+ function = (product) -> product.getName();
|
|
|
+ function = Product::getName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 操作1:对每个元素求平方
|
|
|
+ * 操作2:请找出数组中的偶数元素
|
|
|
+ * 操作3:对偶数进行升序排序
|
|
|
+ * 操作4:打印
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t6(){
|
|
|
+ List<Integer> list = Arrays.asList(4, 1, 2, 3);
|
|
|
+ Stream<Integer> stream = list.stream();
|
|
|
+ stream
|
|
|
+ .map((e) -> e*e)
|
|
|
+ .filter((e) -> e%2==0)
|
|
|
+ .sorted()
|
|
|
+ .skip(0)
|
|
|
+ .limit(1)
|
|
|
+ .forEach(System.out::println);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建stream的三种方式
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t7(){
|
|
|
+ List<Integer> list = Arrays.asList(4, 1, 2, 3);
|
|
|
+ Stream<Integer> stream = list.stream();
|
|
|
+ //第二种:
|
|
|
+ Stream<Object> stream1 = Arrays.stream(list.toArray());
|
|
|
+ //第三种
|
|
|
+ Stream<Integer> integerStream = Stream.of(1, 2, 2, 3, 5, 6);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|