guyanqing 9 months ago
parent
commit
af5c247dc7

+ 115 - 0
src/main/java/com/sf/javase/day22/T.java

@@ -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);
+    }
+
+
+}

BIN
target/classes/com/sf/javase/day21/IPrintable.class


BIN
target/classes/com/sf/javase/day21/IShowable.class


BIN
target/classes/com/sf/javase/day21/T$1.class


BIN
target/classes/com/sf/javase/day21/T.class


BIN
target/classes/com/sf/javase/day22/T$1.class


BIN
target/classes/com/sf/javase/day22/T$2.class


BIN
target/classes/com/sf/javase/day22/T$3.class


BIN
target/classes/com/sf/javase/day22/T$4.class


BIN
target/classes/com/sf/javase/day22/T.class