- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Find Number of Odd and Even Elements in Each Row of a Matrix in Java

In Java, Array is an object. It is a non-primitive data type which stores values of similar data type. The matrix in java is nothing but a multi-dimensional array which represents multiple rows and columns.

Here we have given a matrix which contains set of elements and as per the problem statement we have to find out the number of odd elements and even elements in each row of a matrix.

Let’s start!

## To show you some instances

### Instance-1

Given matrix =

21 22 23 24 25 26 27 28 29

Row 1 has 2 odd elements and 1 even element

Row 2 has 1 odd element and 2 even elements

Row 3 has 2 odd elements and 1 even element

### Instance-2

Given matrix =

121 222 243 432 124 245 256 657 237 258 229 345 176 453 756 343

Row 1 has 2 odd elements and 2 even elements

Row 2 has 2 odd elements and 2 even elements

Row 3 has 3 odd elements and 1 even element

Row 4 has 2 odd elements and 2 even elements

### Instance-3

Given matrix =

1 2 3 4 5 6 7 8 9

Row 1 has 2 odd elements and 1 even element

Row 2 has 1 odd element and 2 even elements

Row 3 has 2 odd elements and 1 even element

## Algorithm

### Algorithm-1: (By Using for Loop)

**Step-1**− Use a nested for loop to iterate through each row and each element in the row of the matrix.**Step-2**− Take two variables, oddCount and evenCount, to keep track of the number of odd and even elements in each row.**Step-3**− For each element in the row, it checks whether it's odd or even using the modulo operator (%).**Step-4**− If the element is even, it increments evenCount; otherwise, it increments oddCount.**Step-5**− After iterating through all the elements in the row, it prints out the number of odd and even elements for that row.

### Algorithm-2: (By using Java Streams)

**Step-1**− Use the IntStream class from the Java Streams API to process the elements in each row of the matrix.**Step-2**− Take two variables, oddCount and evenCount, to keep track of the number of odd and even elements in each row.**Step-3**− For each row, it creates an IntStream from the elements in the row, and then uses the filter method to get the count of odd and even elements.**Step-4**− The filter method takes a Predicate as an argument that returns true for odd elements and false for even elements.**Step-5**− After iterating through all the rows, it prints out the number of odd and even elements for each row.

### Algorithm-3: (By Using Arrays Class)

**Step-1**− Use the Arrays class from the Java Standard Library to process the elements in each row of the matrix.**Step-2**− Take two variables, oddCount and evenCount, to keep track of the number of odd and even elements in each row.**Step-3**− For each row, it creates a stream from the elements in the row using the stream method from the Arrays class, and then uses the filter method to get the count of odd and even elements.**Step-4**− The filter method takes a Predicate as an argument that returns true for odd elements and false for even elements.**Step-5**− After iterating through all the rows, it prints out the number of odd and even elements for each row.

### Syntax

1. **The Matrix.length()** method in Java returns the length of the given matrix.

Below refers to the syntax of it −

inputMatrix.lenght

where, ‘inputMatrix’ refers to the given matrix.

2. The **IntStream.of()** method is a part of the Java Stream API and is used to create a stream of primitive int values from an array of int values.

IntStream.of(inputMatrix[i])

where, ‘inputMatrix’ refers to the given matrix.

3. The **filter()** method is used to filter elements from a stream based on a condition. The elements that satisfy the condition are kept in the resulting stream, while the rest are discarded. In this case, the filter method is used to filter odd and even elements from the stream of int values created by **IntStream.of()** method.

filter(x -> x % 2 != 0)

## Multiple Approaches

We have provided the solution in different approaches.

By Using for Loop

By Using Java Stream

By Using Arrays Class

Let’s see the program along with its output one by one.

## Approach-1: By Using for Loop

In this approach, matrix elements will be initialized in the program. Then as per the algorithm-1 using for loop calculate the number of odd elements and even elements in each row of that matrix.

### Example

public class Main { public static void main(String[] args) { //declare and initialize a 2D matrix int[][] inputMatrix = {{11, 21, 23, 44}, {52, 36, 47, 58}, {49, 10, 11, 12}}; //loop to find odd/even counts for (int a = 0; a < inputMatrix.length; a++) { int oddCnt = 0, evenCnt = 0; for (int b = 0; b < inputMatrix[a].length; b++) { if (inputMatrix[a][b] % 2 == 0) { evenCnt++; } else { oddCnt++; } } //print the result System.out.println("Row " + (a + 1) + " has " + oddCnt + " odd elements and " + evenCnt + " even elements"); } } }

### Output

Row 1 has 3 odd elements and 1 even elements Row 2 has 1 odd elements and 3 even elements Row 3 has 2 odd elements and 2 even elements

## Approach-2: By Using Java Stream

In this approach, matrix elements will be initialized in the program. Then as per the algorithm-2 using java streams calculate the number of odd elements and even elements in each row of that matrix.

### Example

import java.util.stream.IntStream; public class Main { public static void main(String[] args) { //declare and initialize a 2D matrix int[][] inputMatrix = {{1, 2, 3}, {5, 6, 7}, {10, 11, 12}}; for (int i = 0; i < inputMatrix.length; i++) { // create a stream from the elements in the row and filter odd and even elements long oddCount = IntStream.of(inputMatrix[i]).filter(x -> x % 2 != 0).count(); long evenCount = IntStream.of(inputMatrix[i]).filter(x -> x % 2 == 0).count(); //print the results System.out.println("Row " + (i + 1) + " has " + oddCount + " odd elements and " + evenCount + " even elements"); } } }

### Output

Row 1 has 2 odd elements and 1 even elements Row 2 has 2 odd elements and 1 even elements Row 3 has 1 odd elements and 2 even elements

## Approach-3: By Using Arrays Class

In this approach, matrix elements will be initialized in the program. Then as per the algorithm-3 using the arrays class calculate the number of odd elements and even elements in each row of that matrix.

### Example

import java.util.Arrays; public class Main { public static void main(String[] args) { //declare and initialize a 2D matrix int[][] inputMatrix = {{21, 24, 23, 42}, {25, 16, 77, 68}, {96, 10, 11, 12}, {99, 10, 11, 12}}; for (int a = 0; a < inputMatrix.length; a++) { // create arrays stream from the elements in the row and filter odd and even elements int oddCount = (int) Arrays.stream(inputMatrix[a]).filter(x -> x % 2 != 0).count(); int evenCount = (int) Arrays.stream(inputMatrix[a]).filter(x -> x % 2 == 0).count(); System.out.println("Row " + (a + 1) + " has " + oddCount + " odd elements and " + evenCount + " even elements"); } } }

### Output

Row 1 has 2 odd elements and 2 even elements Row 2 has 2 odd elements and 2 even elements Row 3 has 1 odd elements and 3 even elements Row 4 has 2 odd elements and 2 even elements

In this article, we explored different approaches to find number of odd and even elements in each row of a matrix by using Java programming language.