Functional Programming in Java

IntStream.of(5); IntStream.of(1, 2, 3); IntStream.range(1, 3); IntStream.rangeClosed(1, 3); IntStream.iterate(0, i -> i + 2).limit(10); IntStream.generate(() -> (int) (Math.random() * 5)).limit(10); class Test { public static void main(String[] args) { IntStream intStream = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); intStream.forEach(item -> System.out.print(item + ” “)); } } Output: 1 2 3 4…

Read More Streams – IntStream class

Optional<T> findAny() class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 7, 9, 15, 17)); Optional<Integer> resultOptional = numbers.stream().findAny(); if (resultOptional.isPresent()) { // checking if optional contains any value System.out.println(“The element returned from the stream: ” + resultOptional.get()); // getting the value from Optional } else { System.out.println(“The stream is…

Read More Streams – findAny() operation

T reduce(T identity, BinaryOperator<T> accumulator); class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 5, 7, 9)); int result = numbers.stream() .reduce(1, (num1, num2) -> num1 * num2); System.out.println(“The result is: ” + result); } } Output: The result is: 945 class Test { public static void main(String[] args) {…

Read More Streams – reduce() operation

boolean noneMatch(Predicate<? super T> predicate) class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(12, 17, 20, 8, 92, 15, 9, 31, 7)); System.out.println(numbers.stream() .noneMatch(number -> number < 5)); } } Output: true class Test { public static void main(String[] args) { System.out.println(getStudents().stream() .noneMatch(student -> student.getGrade() < 7)); } private static…

Read More Streams – noneMatch() operation

boolean anyMatch(Predicate<? super T> predicate) class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(20, 12, 12, 8, 9, 5, 32, 19)); System.out.println(numbers.stream() .anyMatch(number -> number > 25)); } } Output: true class Test { public static void main(String[] args) { System.out.println(getStudents().stream() .anyMatch(student -> student.getGrade() > 8)); } private static List<Student>…

Read More Streams – anyMatch() operation

boolean allMatch(Predicate<? super T> predicate) class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)); System.out.println(numbers.stream() .allMatch(number -> number % 2 == 0)); } } Output: true class Test { public static void main(String[] args) { boolean areAllPremiumMembers = getAllUsers().stream() .allMatch(user ->…

Read More Streams – allMatch() operation

Stream<T> limit(long maxSize) Stream<T> skip(long n) class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); List<Integer> resultList = numbers.stream() .limit(5) .map(num -> num * 2) .collect(Collectors.toList()); System.out.println(resultList); } } Output: [2, 4, 6, 8, 10] class Test { public static void…

Read More Streams – limit() and skip() operations

Optional<T> min(Comparator<? super T> comparator); class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(7, 12, 98, 72, 48, 3, 10, 14, 42, 97, 24)); int minNumber = numbers.stream() .min(Comparator.comparing(Integer::valueOf)) .get(); System.out.println(“Minimum number is: ” + minNumber); } } Output: Minimum number is: 3 class Student { private String firstName; private…

Read More Streams – max() and min() operations

class Test { public static void main(String[] args) { List<String> names = new ArrayList<>(Arrays.asList(“John”, “Alex”, “Megan”, “Bobby”, “Xavier”)); List<String> orderedNames = names.stream() .sorted() .collect(Collectors.toList()); System.out.println(orderedNames); } } Output: [Alex, Bobby, John, Megan, Xavier] class Student implements Comparable<Student> { private String firstName; private String lastName; private int grade; public Student(String firstName, String lastName, int grade) {…

Read More Streams – sorted() operation

class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 7, 9, 22, 19, 18, 47, 3, 12, 29, 17, 44, 78, 99)); long totalCount = numbers.stream().count(); System.out.println(“Total count of numbers: ” + totalCount); } } Output: Total count of numbers: 14 class Student { private String firstName; private String lastName;…

Read More Streams – count() operation

class Test { public static void main(String[] args) { List<String> names = new ArrayList<>(Arrays.asList(“Megan”, “John”, “Melissa”, “Tom”, “John”, “Megan”, “Steve”, “Tom”)); List<String> uniqueNames = names.stream() .distinct() .collect(Collectors.toList()); System.out.println(uniqueNames); } } Output: [Megan, John, Melissa, Tom, Steve] class User { private String name; private String username; private String membershipType; private String address; public User(String name, String…

Read More Streams – distinct() operation

Stream<T> filter(Predicate<? super T> predicate) class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); List<Integer> filteredNumbers = numbers.stream() .filter(number -> number % 2 == 0) .collect(Collectors.toList()); System.out.println(filteredNumbers); } } Output: [2, 4, 6, 8, 10] class Student { private String firstName;…

Read More Streams – filter() operation

class Test { public static void main(String[] args) { List<String> cities = new ArrayList<>(Arrays.asList(“New York”, “Berlin”, “Bangkok”, “London”)); List<String> modifiedList = cities.stream() .map(String::toUpperCase) .collect(Collectors.toList()); modifiedList.forEach(System.out::println); } } Output: NEW YORK BERLIN BANGKOK LONDON List<List<String>> cities = new ArrayList<>(); cities.add(new ArrayList<>(Arrays.asList(“Paris”, “London”))); cities.add(new ArrayList<>(Arrays.asList(“New York”, “Berlin”))); class Test { public static void main(String[] args) { List<List<String>>…

Read More Streams – flatMap() operation

class Test { public static void main(String[] args) { List<String> cities = new ArrayList<>(Arrays.asList(“New York”, “Paris”, “London”, “Monte Carlo”, “Berlin”)); cities.stream() .map(city -> city.toUpperCase()) .forEach(city -> System.out.println(city)); } } Output: NEW YORK PARIS LONDON MONTE CARLO BERLIN class Test { public static void main(String[] args) { List<String> cities = new ArrayList<>(Arrays.asList(“New York”, “Paris”, “London”, “Monte…

Read More Streams – map() operation