As I have already shared the Java 8 Coding and Programming Interview Questions and Answers and questions on Stream API in Java 8 Stream API Interview Questions and Answers. Keeping in mind that, you already know the basics of using the Java 8 concepts. In this article let us try some real-time questions.
We will use the below Employee class employeeList as an example to solve the questions.
public class Employee {
int id;
String name;
int age;
String gender;
String department;
int yearOfJoining;
double salary;
public Employee(int id, String name, int age, String gender, String department, int yearOfJoining, double salary)
{
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.department = department;
this.yearOfJoining = yearOfJoining;
this.salary = salary;
}
public int getId()
{
return id;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String getGender()
{
return gender;
}
public String getDepartment()
{
return department;
}
public int getYearOfJoining()
{
return yearOfJoining;
}
public double getSalary()
{
return salary;
}
@Override
public String toString()
{
return "Id : "+id
+", Name : "+name
+", age : "+age
+", Gender : "+gender
+", Department : "+department
+", Year Of Joining : "+yearOfJoining
+", Salary : "+salary;
}
public static void main(String[] args) {
List<Employee> employeeList = new ArrayList<Employee>();
employeeList.add(new Employee(111, "Jiya Brein", 32, "Female", "HR", 2011, 25000.0));
employeeList.add(new Employee(122, "Paul Niksui", 25, "Male", "Sales And Marketing", 2015, 13500.0));
employeeList.add(new Employee(133, "Martin Theron", 29, "Male", "Infrastructure", 2012, 18000.0));
employeeList.add(new Employee(144, "Murali Gowda", 28, "Male", "Product Development", 2014, 32500.0));
employeeList.add(new Employee(155, "Nima Roy", 27, "Female", "HR", 2013, 22700.0));
employeeList.add(new Employee(166, "Iqbal Hussain", 43, "Male", "Security And Transport", 2016, 10500.0));
employeeList.add(new Employee(177, "Manu Sharma", 35, "Male", "Account And Finance", 2010, 27000.0));
employeeList.add(new Employee(188, "Wang Liu", 31, "Male", "Product Development", 2015, 34500.0));
employeeList.add(new Employee(199, "Amelia Zoe", 24, "Female", "Sales And Marketing", 2016, 11500.0));
employeeList.add(new Employee(200, "Jaden Dough", 38, "Male", "Security And Transport", 2015, 11000.5));
employeeList.add(new Employee(211, "Jasna Kaur", 27, "Female", "Infrastructure", 2014, 15700.0));
employeeList.add(new Employee(222, "Nitin Joshi", 25, "Male", "Product Development", 2016, 28200.0));
employeeList.add(new Employee(233, "Jyothi Reddy", 27, "Female", "Account And Finance", 2013, 21300.0));
employeeList.add(new Employee(244, "Nicolus Den", 24, "Male", "Sales And Marketing", 2017, 10700.5));
employeeList.add(new Employee(255, "Ali Baig", 23, "Male", "Infrastructure", 2018, 12700.0));
employeeList.add(new Employee(266, "Sanvi Pandey", 26, "Female", "Product Development", 2015, 28900.0));
employeeList.add(new Employee(277, "Anuj Chettiar", 31, "Male", "Product Development", 2012, 35700.0));
}
}
Now, using the above employeeList, let us solve the list of questions.
Find out the count of male and female employees present in the organization?
public static void getCountOfMaleFemale(List<Employee> employeeList) { Map<String, Long> noOfMaleAndFemaleEmployees= employeeList.stream() .collect(Collectors.groupingBy (Employee::getGender, Collectors.counting())); System.out.println(noOfMaleAndFemaleEmployees); } Output: {Male=11, Female=6}
Write a program to print the names of all departments in the organization.
public static void getDepartmentName(List<Employee> employeeList){ employeeList.stream() .map(Employee::getDepartment) .distinct() .forEach(System.out::println); } Output: HR Sales And Marketing Infrastructure Product Development Security And Transport Account And Finance
Find the average age of Male and Female Employees.
public static void getGender(List<Employee> employeeList) { Map<String, Double> avgAge = employeeList.stream() .collect(Collectors.groupingBy (Employee::getGender, Collectors.averagingInt (Employee::getAge))); System.out.println(avgAge); } Output: {Male=30.181818181818183, Female=27.166666666666668}
Get the Names of employees who joined after 2015.
public static void getNameOfEmp(List<Employee> employeeList) { employeeList.stream() .filter(e -> e.getYearOfJoining() > 2015) .map(Employee::getName) .forEach(System.out::println); } Output: Iqbal Hussain Amelia Zoe Nitin Joshi Nicolus Den Ali Baig
Count the number of employees in each department.
public static void countByDept(List<Employee> employeeList) { Map<String, Long> countByDept = employeeList.stream() .collect(Collectors.groupingBy (Employee::getDepartment, Collectors.counting())); Set<Entry<String, Long>> entrySet = countByDept.entrySet(); for (Entry<String, Long> entry : entrySet) { System.out.println(entry.getKey()+" : "+entry.getValue()); } } Output: Product Development : 5 Security And Transport : 2 Sales And Marketing : 3 Infrastructure : 3 HR : 2 Account And Finance : 2
Find out the average salary of each department.
public static void avgSalary(List<Employee> employeeList) { Map<String, Double> avgSalary = employeeList.stream() .collect(Collectors.groupingBy (Employee::getDepartment, Collectors.averagingDouble(Employee::getSalary))); Set<Entry<String, Double>> entrySet = avgSalary.entrySet(); for (Entry<String, Double> entry : entrySet) { System.out.println(entry.getKey()+" : "+entry.getValue()); } } Output: Product Development : 31960.0 Security And Transport : 10750.25 Sales And Marketing : 11900.166666666666 Infrastructure : 15466.666666666666 HR : 23850.0 Account And Finance : 24150.0
Find out the oldest employee, his/her age and department?
public static void oldestEmp(List<Employee> employeeList) { Optional<Employee> oldestEmp = employeeList.stream() .max(Comparator .comparingInt(Employee::getAge)); Employee oldestEmployee = oldestEmp .get(); System.out.println("Name : "+oldestEmployee.getName()); System.out.println("Age : "+oldestEmployee.getAge()); System.out.println("Department : "+oldestEmployee.getDepartment()); } Output: Name : Iqbal Hussain Age : 43 Department : Security And Transport
Find out the average and total salary of the organization.
public static void getEmpSalary(List<Employee> employeeList) { DoubleSummaryStatistics empSalary = employeeList.stream() .collect(Collectors .summarizingDouble(Employee::getSalary)); System.out.println("Average Salary = "+empSalary.getAverage()); System.out.println("Total Salary = "+empSalary.getSum()); } Output: Average Salary = 21141.235294117647 Total Salary = 359401.0
List down the employees of each department.
public static void listDownDept(List<Employee> employeeList) { Map<String, List<Employee>> empList = employeeList.stream() .collect(Collectors .groupingBy(Employee::getDepartment)); Set<Entry<String, List<Employee>>> entrySet = empList.entrySet(); for (Entry<String, List<Employee>> entry : entrySet) { System.out.println("--------------------------------------"); System.out.println("Employees In "+entry.getKey() + " : "); System.out.println("--------------------------------------"); List<Employee> list = entry.getValue(); for (Employee e : list) { System.out.println(e.getName()); } } } Output: Employees In Product Development : ————————————– Murali Gowda Wang Liu Nitin Joshi Sanvi Pandey Anuj Chettiar ————————————– Employees In Security And Transport : ————————————– Iqbal Hussain Jaden Dough ————————————– Employees In Sales And Marketing : ————————————– Paul Niksui Amelia Zoe Nicolus Den ————————————– Employees In Infrastructure : ————————————– Martin Theron Jasna Kaur Ali Baig ————————————– Employees In HR : ————————————– Jiya Brein Nima Roy ————————————– Employees In Account And Finance : ————————————– Manu Sharma Jyothi Reddy
Find out the height of experienced employees in the organization
public static void seniorEmp(List<Employee> employeeList) { Optional<Employee> seniorEmp = employeeList.stream() .sorted(Comparator .comparingInt(Employee::getYearOfJoining)).findFirst(); Employee seniorMostEmployee = seniorEmp.get(); System.out.println("Senior Most Employee Details :"); System.out.println("----------------------------"); System.out.println("ID : "+seniorMostEmployee.getId()); System.out.println("Name : "+seniorMostEmployee.getName()); System.out.println("Age : "+seniorMostEmployee.getAge()); } Output: Senior Most Employee Details : —————————- ID : 177 Name : Manu Sharma Age : 35
I hope this article is helpful. Thank you for reading the article. Please like, share and comment. it will encourage me to write more such articles. Do share your valuable suggestions, I appreciate your honest feedback!!!