|
@@ -0,0 +1,106 @@
|
|
|
+package com.sf.javase.day21;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+public class T {
|
|
|
+ public void t1(){
|
|
|
+ new Thread(() -> System.out.println("开一个子线程处理一个耗时操作")).start();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 需求1: 筛选出所有名称包含手机的商品
|
|
|
+ *
|
|
|
+ * 需求2: 筛选出所有价格大于1000的商品
|
|
|
+ */
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t2(){
|
|
|
+ List<Product> list1 = findProductsByName(Data.products);
|
|
|
+ System.out.println(list1);
|
|
|
+ List<Product> list2 = findProductsByPrice(Data.products);
|
|
|
+ System.out.println(list2);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Product> findProductsByPrice(List<Product> products) {
|
|
|
+ List<Product> list = new ArrayList<>();
|
|
|
+ for (Product product : products) {
|
|
|
+ if (product.getPrice() > 1000) {
|
|
|
+ list.add(product);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Product> findProductsByName(List<Product> products) {
|
|
|
+ List<Product> list = new ArrayList<>();
|
|
|
+ for (Product product : products) {
|
|
|
+ if(product.getName().contains("手机")){
|
|
|
+ list.add(product);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t3(){
|
|
|
+ List<Product> list1= findProductsByCondition(Data.products, (product -> product.getName().contains("手机")));
|
|
|
+ System.out.println(list1);
|
|
|
+
|
|
|
+ List<Product> list2 = findProductsByCondition(Data.products, product -> product.getPrice() > 1000);
|
|
|
+ System.out.println(list2);
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<Product> findProductsByCondition(List<Product> products, MyPredicate myPredicate) {
|
|
|
+ List<Product> list = new ArrayList<>();
|
|
|
+ for (Product product : products) {
|
|
|
+ if(myPredicate.test(product)){
|
|
|
+ list.add(product);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t6(){
|
|
|
+ //**练习1:编写一个接口 IShowable,
|
|
|
+ // 接口中存在一个抽象方法show,无参数无返回值,传入对应的lambda表达式**
|
|
|
+ useShow(() -> {System.out.println("H");});
|
|
|
+ }
|
|
|
+
|
|
|
+ public void useShow(IShowable iShowable){
|
|
|
+ iShowable.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * **练习2:编写一个接口 IPrintable,
|
|
|
+ * 接口中存在一个抽象方法print,有参数无返回值,传入对应的lambda表达式**
|
|
|
+ */
|
|
|
+ @Test
|
|
|
+ public void t7(){
|
|
|
+ useIPrintable((a) -> {
|
|
|
+ System.out.println(a);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void useIPrintable(IPrintable iPrintable){
|
|
|
+ iPrintable.print("H");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void t8(){
|
|
|
+ List<String> list = Arrays.asList("a","c","b");
|
|
|
+ Map<String,String> map = new HashMap<>();
|
|
|
+ map.put("手机","小米");
|
|
|
+ map.put("笔记本","苹果笔记本");
|
|
|
+ map.put("鼠标","罗技鼠标");
|
|
|
+
|
|
|
+ list.forEach((str) -> System.out.println(str));
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|