🚀 Java 8 Interview Cheat Sheet + Live Examples 🚀

✨ Stream API Fundamentals ✨

1. Basic Stream Operations

listOfIntegers.stream().collect(Collectors.partitioningBy(i -> i % 2 == 0));
listOfIntegers.stream().distinct().collect(Collectors.toList());
anyList.stream().sorted(Comparator.reverseOrder()).forEach(System.out::println);
listOfIntegers.stream().filter(i -> i % 5 == 0).forEach(System.out::println);
list.stream().sorted(Comparator.comparing(String::length)).forEach(System.out::println);

2. Aggregation & Calculation

inputString.chars().mapToObj(c -> (char) c).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
anyList.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
listOfIntegers.stream().max(Comparator.naturalOrder()).get();
Stream.of(String.valueOf(inputNumber).split("")).map(Integer::parseInt).collect(Collectors.summingInt(Integer::intValue));
Arrays.stream(inputArray).sum(); Arrays.stream(inputArray).average().getAsDouble();
IntStream.range(1, 11).sum();

🔍 Advanced Stream API & Utility Questions 🔍

1. Element Manipulation & Retrieval

listOfIntegers.stream().sorted().limit(3).forEach(System.out::println);
listOfIntegers.stream().sorted(Comparator.reverseOrder()).limit(3).forEach(System.out::println);
listOfIntegers.stream().sorted(Comparator.reverseOrder()).skip(1).findFirst().get();
list1.stream().filter(list2::contains).forEach(System.out::println);
listOfStrings.stream().skip(listOfStrings.size()-1).findFirst().get();

2. String Operations

listOfStrings.stream().collect(Collectors.joining("Delimiter", "Prefix", "Suffix"));
Stream.of(s1.split("")).map(String::toUpperCase).sorted().collect(Collectors.joining());
Arrays.stream(str.split(" ")).map(word -> new StringBuffer(word).reverse()).collect(Collectors.joining(" "));
listOfStrings.stream().filter(s -> Character.isDigit(s.charAt(0))).forEach(System.out::println);

3. Array Transformations

IntStream.rangeClosed(1, array.length).map(i -> array[array.length - i]).toArray();
listOfIntegers.stream().filter(i -> ! set.add(i)).collect(Collectors.toSet());

🧩 Other Important Concepts 🧩

IntStream.range(0, str.length()/2).noneMatch(i -> str.charAt(i) != str.charAt(str.length() - i - 1));
ChronoUnit.YEARS.between(birthDate, LocalDate.now());
Stream.iterate(new int[]{0, 1}, f -> new int[]{f[1], f[0] + f[1]}).limit(10).map(f -> f[0]).forEach(System.out::println);

📘 Java Stream API Questions with Code, Output & Explanation