DEV Community

Deva I
Deva I

Posted on

Collections Scenarios

Employee Salary Report :

  1. Create Employee object and store employees in a collection.
  2. Find the highest and lowest salary
  3. Calculate average salary
  4. Filter employees by department
  5. Sort by salary.

Code

package scenarios;

public class Employee implements Comparable <Employee> {


    private int id;
    private String name;
    private int salary;
    private String dept;


    public Employee(int id, String name, int salary, String dept) {
        this.id = id;
        this.name = name;
        this.salary = salary;
        this.dept = dept;
    }

    @Override
    public String toString() {
        return "Employee [id=" + id + ", name=" + name + ", salary=" + salary + ", dept=" + dept + "]";
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }


    @Override
    public int compareTo(Employee o) {

        if(this.getSalary() > o.getSalary() ) {
            return +24;
        }
        else if(this.getSalary() < o.getSalary() ) {
            return -24;
        }
        else{
            return 0;
    }

}
}


Enter fullscreen mode Exit fullscreen mode
package scenarios;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

public class EmployeeSalaryReport {
    public static void main(String[] args) {

         Employee emp1 = new Employee(01, "vignesh", 20000, "testing");
         Employee emp2 = new Employee(02, "subash", 40000, "developer");
         Employee emp3 = new Employee(03, "praveen", 30000, "seo");
         Employee emp4 = new Employee(01, "Deva", 50000, "HR");

        ArrayList<Employee> employees = new ArrayList<>();

        employees.add(emp1);
        employees.add(emp2);
        employees.add(emp3);
        employees.add(emp4);

        int hs =Integer.MIN_VALUE;
        int ls =Integer.MAX_VALUE;
        int total = 0;
        int avg = 0;
        String dept = "HR";

        for (Employee employee : employees) {

            total += employee.getSalary();

         avg = total / employees.size();

         if(employee.getDept().equals(dept)) {
            System.out.println(employee.getName());
         }

            if(employee.getSalary() > hs) {
                hs = employee.getSalary();

            }

            if(employee.getSalary() < ls) {
                ls = employee.getSalary();

            }

        }

        System.out.println("Highest salary :" + hs);
        System.out.println("Lowest salary :" + ls);
        System.out.println("Total salary : " + total);
        System.out.println("Average salary:" + avg);
        Collections.sort(employees);
        System.out.println(employees);

    }

}

Enter fullscreen mode Exit fullscreen mode

Output

Top comments (0)