fork(1) download
  1. import java.math.BigDecimal;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.stream.Collectors;
  7.  
  8. class Ideone {
  9. public static void main(String[] args) {
  10. List<Person> people = new ArrayList<>(Arrays.asList(
  11. new Person(0, "SAMPLE_0", 10, Gender.OTHER , 100, "120.00"),
  12. new Person(1, "SAMPLE_1", 11, Gender.MALE , 100, "120.00"),
  13. new Person(2, "SAMPLE_2", 12, Gender.MALE , 100, "120.00"),
  14. new Person(3, "SAMPLE_3", 13, Gender.FEMALE, 100, "100.00"),
  15. new Person(4, "SAMPLE_4", 14, Gender.FEMALE, 100, "100.00"),
  16. new Person(5, "SAMPLE_5", 15, Gender.FEMALE, 100, "100.00")));
  17.  
  18. Map<Gender, List<Person>> genderMap = people.stream()
  19. .collect(Collectors.groupingBy(Person::getGender, Collectors.toList()));
  20. genderMap.forEach((gender, persons) -> System.out.println(gender + " " + persons));
  21. }
  22. }
  23. enum Gender {
  24. MALE, FEMALE, OTHER
  25. }
  26. class Person {
  27. private final int id;
  28. private final String name;
  29. private final int age;
  30. private final Gender gender;
  31. private final int sal;
  32. private final BigDecimal monthlyExpenseAmount;
  33. public Person(int id, String name, int age, Gender gender, int sal, String monthlyExpenseAmount) {
  34. this.id = id;
  35. this.name = name;
  36. this.age = age;
  37. this.gender = gender;
  38. this.sal = sal;
  39. this.monthlyExpenseAmount = new BigDecimal(monthlyExpenseAmount);
  40. }
  41. public int getId() {
  42. return this.id;
  43. }
  44. public String getName() {
  45. return this.name;
  46. }
  47. public int getAge() {
  48. return this.age;
  49. }
  50. public Gender getGender() {
  51. return this.gender;
  52. }
  53. public int getSal() {
  54. return this.sal;
  55. }
  56. public BigDecimal getMonthlyExpenseAmount() {
  57. return this.monthlyExpenseAmount;
  58. }
  59. @Override
  60. public String toString() {
  61. return "Person [id=" + this.id + ", name=" + this.name + ", age=" + this.age + ", gender=" + this.gender +
  62. ", sal=" + this.sal + ", monthlyExpenseAmount=" + this.monthlyExpenseAmount + "]";
  63. }
  64. }
Success #stdin #stdout 0.14s 2184192KB
stdin
Standard input is empty
stdout
OTHER [Person [id=0, name=SAMPLE_0, age=10, gender=OTHER, sal=100, monthlyExpenseAmount=120.00]]
MALE [Person [id=1, name=SAMPLE_1, age=11, gender=MALE, sal=100, monthlyExpenseAmount=120.00], Person [id=2, name=SAMPLE_2, age=12, gender=MALE, sal=100, monthlyExpenseAmount=120.00]]
FEMALE [Person [id=3, name=SAMPLE_3, age=13, gender=FEMALE, sal=100, monthlyExpenseAmount=100.00], Person [id=4, name=SAMPLE_4, age=14, gender=FEMALE, sal=100, monthlyExpenseAmount=100.00], Person [id=5, name=SAMPLE_5, age=15, gender=FEMALE, sal=100, monthlyExpenseAmount=100.00]]