Java 8 - Count Male and Female Employees in Organization

1. Introduction

This tutorial demonstrates how to count the number of male and female employees in different organizations using Java 8 Streams. This method can help businesses analyze workforce diversity across different branches or departments.

2. Program Steps

1. Define an Employee class with attributes for name, gender, and organization.

2. Create a list of Employee objects.

3. Use Stream operations to count male and female employees by organization.

3. Code Program

import java.util.Arrays;
import java.util.List;

public class EmployeeOrganizationCount {

    public static void main(String[] args) {
        List<Employee> employees = Arrays.asList(
            new Employee("Rahul Gupta", "Male", "Infosys"),
            new Employee("Priya Patil", "Female", "Infosys"),
            new Employee("Amit Raj", "Male", "TCS"),
            new Employee("Deepika Sharma", "Female", "TCS"),
            new Employee("Vijay Kumar", "Male", "Infosys")

        long malesInInfosys =
            .filter(e -> "Male".equals(e.getGender()) && "Infosys".equals(e.getOrganization()))
        long femalesInInfosys =
            .filter(e -> "Female".equals(e.getGender()) && "Infosys".equals(e.getOrganization()))
        long malesInTCS =
            .filter(e -> "Male".equals(e.getGender()) && "TCS".equals(e.getOrganization()))
        long femalesInTCS =
            .filter(e -> "Female".equals(e.getGender()) && "TCS".equals(e.getOrganization()))

        System.out.println("Male employees in Infosys: " + malesInInfosys);
        System.out.println("Female employees in Infosys: " + femalesInInfosys);
        System.out.println("Male employees in TCS: " + malesInTCS);
        System.out.println("Female employees in TCS: " + femalesInTCS);

    class Employee {
        private String name;
        private String gender;
        private String organization;

        Employee(String name, String gender, String organization) {
   = name;
            this.gender = gender;
            this.organization = organization;

        public String getGender() {
            return gender;

        public String getOrganization() {
            return organization;


Male employees in Infosys: 2
Female employees in Infosys: 1
Male employees in TCS: 1
Female employees in TCS: 1


1. Employee Class: Includes fields for name, gender, and organization to represent an employee.

2. Creating List: A list of Employee objects represents employees from Infosys and TCS.

3. Stream Filters: The stream is filtered by both gender and organization to count male and female employees separately in each company.

4. Output Statements: Print the count of male and female employees in Infosys and TCS, demonstrating how Java Streams can be used for conditional counting in a real-world business.