一對一直播原始碼,搜尋內容時自動模糊匹配相關內容
阿新 • • 發佈:2022-03-24
一 、Java內建四大核心函式式介面
1.1 Consumer<T> (消費型介面)
-
引數型別:T
-
返回型別:void
-
用途:對型別為T的物件應用操作,包含方法:void accept(T, t)
-
public void test1(){ //匿名內部類寫法 happyTime(500, new Consumer<Double>() { @Override public void accept(Double aDouble) { System.out.println("學習太累了,花" + aDouble + "元買瓶水"); } }); //Lambda表示式寫法 happyTime(500, money -> System.out.println("學習太累了,花" + money + "元買瓶水")); } public void happyTime(double money, Consumer<Double> con){ con.accept(money); }
1.2 Supplier<T> (供給型介面)
-
引數型別:無
-
返回型別:T
-
用途:返回為T的物件,包含方法:T get()
-
public void test2(){ Employee emp = new Employee("1001","Tom",23,5600); //匿名內部類寫法 Supplier<String> sup2 = new Supplier<String>() { @Override public String get() { return emp.getName(); } } //Lambda表示式寫法 System.out.println(sup1.get()); Supplier<String> sup2 = () -> emp.getName(); System.out.println(sup2.get()); }
1.3 Function<T,R> (函式型介面)
-
引數型別:T
-
返回型別:R
-
用途:對型別為T的物件應用操作,並返回結果。結果是R型別的物件。包含方法:R apply(T t)
-
public void test3(){ //匿名內部類寫法 Function<String, Employee> func1 = new Function<String, Employee>() { @Override public Employee apply(String s) { return new Employee(s); } } System.out.println(func1.apply("2211")); //Lambda表示式寫法 Function<String, Employee> func1 = (s) -> new Employee(s); System.out.println(func1.apply("2211")); }
1.4 Predicate<T> (判定型介面)
-
引數型別:T
-
返回型別:boolean
-
用途:確定型別為T的物件是否滿足某約束,並返回boolean值。包含方法 boolean test(T t)
-
public void test4(){ //匿名內部類方法 List<String> list = Arrays.asList("北京", "南京", "天津", "東京"); List<String> list1 = filterString(list, new Predicate<String>() { @Override public boolean test(String s) { return s.contains("京"); } }); System.out.println(list1); //lambda表示式方法 List<String> list2 = filterString(list, s -> s.contains("京")); System.out.println(list2); } //根據給定的規則,過濾集合中的字串。此規則由Predicate的方法決定 public List<String> filterString(List<String> list, Predicate<String> pre){ ArrayList<String> filter = new ArrayList<>(); for(String s : list){ if(pre.test(s)){ filter.add(s); } } return filter; }