Advertisement
sergAccount

Untitled

Mar 28th, 2021
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.40 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package com.mycompany.app21;
  7.  
  8. import java.util.ArrayList;
  9.  
  10. public class Main3 {
  11.    
  12.     // метод для обработки элемента из потока данных
  13.     public static void processValue(String value){        
  14.         System.out.println("processValue=" + value);
  15.     }
  16.     // метод для обработки элемента из потока данных
  17.     public static void doIt(String value){        
  18.         System.out.println("doIt=" + value);
  19.     }
  20.     //
  21.     public static void main(String[] args) {
  22.  
  23.         MyFilter filter1 = new MyFilter(2);
  24.         MyFilter filter2 = new MyFilter(3);
  25.  
  26.         ArrayList<String> list = new ArrayList<>();
  27.         list.add("ONE");
  28.         list.add("TWO");
  29.         list.add("TWO123");
  30.         list.add("O");
  31.         //
  32.         System.out.println("\nSAMPLE1:");
  33.         // filter1 - объект реализует интерфейс Predicate
  34.         list.stream().filter(filter1).forEach(x -> System.out.println(x));
  35.         System.out.println("\nSAMPLE2:");
  36.         // filter1, filter2 - объект реализует интерфейс Predicate
  37.         list.stream().filter(filter1)
  38.                      .filter(filter2).forEach(x -> System.out.println(x));              
  39.        
  40.         // использование ссылок на методы - используем оператор ::
  41.         // используем ссылку на метод println        
  42.         list.stream().filter(filter1)
  43.                      .filter(filter2).forEach(System.out::println);              
  44.        
  45.         // Вариант 1) - ссылка на статический метод
  46.         // Вариант 2) - ссылка на метод объекта - экземпляра класса  
  47.         // ссылка на статический метод класса Main3
  48.         System.out.println("Main3::processValue: ");
  49.         list.stream().filter(filter1)
  50.                      .filter(filter2).forEach(Main3::processValue);          
  51.         //
  52.         System.out.println("Main3::doIt: ");
  53.         list.stream().filter(filter1)
  54.                      .filter(filter2).forEach(Main3::doIt);          
  55.        
  56.     }
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement