Group by Employee Name using Stream


import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;


class employeeDetails {
    private Integer eId;
    private String name;
    private Long Salary;

    public Integer geteId() {
        return eId;
    }

    public void seteId(Integer eId) {
        this.eId = eId;
    }

    public String getName() {
        return name;
    }

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

    public Long getSalary() {
        return Salary;
    }

    public void setSalary(Long salary) {
        Salary = salary;
    }

    public employeeDetails(Integer eId, String name, Long salary) {
        super();
        this.eId = eId;
        this.name = name;
        Salary = salary;
    }

}


public class sortEmployeeList {

    public static void main(String[] args) {
        employeeDetails e = new employeeDetails(4, "pavan", 52L);
        employeeDetails e1 = new employeeDetails(1, "kumar", 42L);
        employeeDetails e2 = new employeeDetails(9, "nk", 63L);
        employeeDetails e3 = new employeeDetails(2, "zsp", 13L);
        employeeDetails e4 = new employeeDetails(5, "pavan", 14L);
        employeeDetails e5 = new employeeDetails(9, "nk", 63L);
        ArrayList al = new ArrayList<>();
        al.add(e3);
        al.add(e2);
        al.add(e1);
        al.add(e);
        al.add(e4);
        al.add(e5);

        System.out.println("======= Sort By Name using List =======");

        al.stream().sorted((name1, name2) -> name1.getName().compareTo(name2.getName())).forEach(byName -> {
            System.out.println(byName.getName() + " " + byName.getSalary());
        });
        ;

        System.out.println("======= group By Name =======");
        Map hm1 = al.stream().collect(Collectors.groupingBy(employeeDetails::getName, Collectors.counting()));
        hm1.entrySet().forEach(a -> {
            System.out.println(a.getKey() + " " + a.getValue());
        });
    }

}

Comments