Skip to main content

Java Interview Question: Separate Even and Odd Numbers Using Streams (With Examples)

 

🔹 Introduction

Separating even and odd numbers is a common Java interview question.
It helps test your understanding of Java Streams, filtering, and partitioning.

👉 In this article, we will solve this using:

  • Traditional approach
  • Java Streams (modern approach)

🔹 Problem Statement

Given a list of integers, separate even and odd numbers.

Example:

Input: [1, 2, 3, 4, 5, 6]
Output: Even: [2, 4, 6], Odd: [1, 3, 5]

🔹 Approach 1: Using Loop (Basic)

💡 Explanation

  • Traverse list
  • Check number % 2
  • Store in separate lists

👨‍💻 Java Code

import java.util.*;

public class EvenOdd {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6);

List<Integer> even = new ArrayList<>();
List<Integer> odd = new ArrayList<>();

for (int num : list) {
if (num % 2 == 0) {
even.add(num);
} else {
odd.add(num);
}
}

System.out.println("Even: " + even);
System.out.println("Odd: " + odd);
}
}

🔹 Approach 2: Using Java Streams (Recommended)

💡 Explanation

  • Use partitioningBy()
  • It splits data into two groups (true/false)

👉 true → even
👉 false → odd


👨‍💻 Java Code (Streams)

import java.util.*;
import java.util.stream.*;

public class EvenOdd {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6);

Map<Boolean, List<Integer>> result =
list.stream()
.collect(Collectors.partitioningBy(n -> n % 2 == 0));

System.out.println("Even: " + result.get(true));
System.out.println("Odd: " + result.get(false));
}
}

🔹 Output

Even: [2, 4, 6]
Odd: [1, 3, 5]

🔹 Time Complexity

  • O(n)

🔹 Key Takeaways

partitioningBy() is very important
✔ Streams make code concise
✔ Frequently asked in interviews


🔹 Conclusion

This is a must-know Java Streams problem.
Understanding partitioningBy() helps in solving many real-world problems.


🔗 Also Read

👉 First Non-Repeating Character in Java
👉 Check Palindrome String in Java
👉 Reverse a String
👉 Count Character Frequency in Java

👉 Find Duplicate Characters in a String

Comments

Popular posts from this blog

Top Java Interview Question: First Non-Repeating Character in a String

  🔹 Introduction Java interviews often include string-based questions. One of the most commonly asked questions is: 👉 Find the first non-repeating character in a string. In this article, we will solve it step by step in a simple and easy-to-understand way. 🔹 Problem Statement Given a string, find the first character that does not repeat. Example: Input: aabbcde Output: c 🔹 Approach To solve this problem efficiently: Count frequency of each character Maintain insertion order Traverse again to find the first character with frequency = 1 👉 We use LinkedHashMap because: It maintains insertion order Helps us find the first non-repeating character 🔹 Java Code import java . util . *; public class FirstNonRepeating { public static void main ( String [] args ) { String str = "aabbcde" ; Map < Character , Integer > map = new LinkedHashMap <>(); // Count frequency for ( char ch : str . to...

Java Interview Question: Check if a String is a Palindrome

 ðŸ”¹ Introduction String problems are very common in Java interviews. One of the easiest yet frequently asked questions is: 👉 Check whether a given string is a palindrome. Let’s understand how to solve it step by step. 🔹 Problem Statement A string is called a palindrome if it reads the same forward and backward. Example: Input: madam Output: Palindrome Input: hello Output: Not a Palindrome 🔹 Approach 1: Using Two Pointers (Best Method) Start one pointer from the beginning Start another pointer from the end Compare characters If all match → Palindrome 🔹 Java Code (Two Pointer Approach) public class PalindromeCheck { public static void main ( String [] args ) { String str = "madam" ; int left = 0 ; int right = str . length () - 1 ; boolean isPalindrome = true ; while ( left < right ) { if ( str . charAt ( left ) != str . charAt ( right )) { isPalindr...