import java.util.Arrays; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.stream.Collectors; class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{name=" + name + ", age=" + age + "}"; } } public class StreamExamples { public static void main(String[] args) { // 1 System.out.println(numbers.stream().filter(integer -> integer % 2 == 0).reduce(0, Integer::sum)); // 2 List<String> words = Arrays.asList("abc","aba", "aaa", "abba", "bcbd"); Consumer<String> consumer = s -> { StringBuilder reversedStr = new StringBuilder(s).reverse(); if (reversedStr.toString().equals(s)){ System.out.println("This is a palindrome"); } else { System.out.println("This is not a palindrome"); } }; words.forEach(consumer); // 3 List<Person> personList = Arrays.asList( new Person("Salitha", 26), new Person("Michael", 32), new Person("Jones", 24), new Person("Andrew", 20), new Person("Sam", 50), new Person("Ben", 27) ); List<Person> personResult = personList.stream().filter( person -> person.getAge() > 25).collect(Collectors.toList()); System.out.println("personResult: "+personResult); // 4 System.out.println(numbers.stream().filter(integer -> integer % 2 != 0).reduce(0, Integer::max)); } }