import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Ideone {
public static void main
(String[] args
) { List
<Person
> people
= new ArrayList
<>(Arrays.
asList( new Person(0, "SAMPLE_0", 10, Gender.OTHER , 100, "120.00"),
new Person(1, "SAMPLE_1", 11, Gender.MALE , 100, "120.00"),
new Person(2, "SAMPLE_2", 12, Gender.MALE , 100, "120.00"),
new Person(3, "SAMPLE_3", 13, Gender.FEMALE, 100, "100.00"),
new Person(4, "SAMPLE_4", 14, Gender.FEMALE, 100, "100.00"),
new Person(5, "SAMPLE_5", 15, Gender.FEMALE, 100, "100.00")));
Map<Gender, List<Person>> genderMap = people.stream()
.collect(Collectors.groupingBy(Person::getGender, Collectors.toList()));
genderMap.
forEach((gender, persons
) -> System.
out.
println(gender
+ " " + persons
)); }
}
enum Gender {
MALE, FEMALE, OTHER
}
class Person {
private final int id;
private final int age;
private final Gender gender;
private final int sal;
public Person
(int id,
String name,
int age, Gender gender,
int sal,
String monthlyExpenseAmount
) { this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.sal = sal;
this.
monthlyExpenseAmount = new BigDecimal(monthlyExpenseAmount
); }
public int getId() {
return this.id;
}
return this.name;
}
public int getAge() {
return this.age;
}
public Gender getGender() {
return this.gender;
}
public int getSal() {
return this.sal;
}
return this.monthlyExpenseAmount;
}
@Override
return "Person [id=" + this.id + ", name=" + this.name + ", age=" + this.age + ", gender=" + this.gender +
", sal=" + this.sal + ", monthlyExpenseAmount=" + this.monthlyExpenseAmount + "]";
}
}
aW1wb3J0IGphdmEubWF0aC5CaWdEZWNpbWFsOwppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKaW1wb3J0IGphdmEudXRpbC5NYXA7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCUxpc3Q8UGVyc29uPiBwZW9wbGUgPSBuZXcgQXJyYXlMaXN0PD4oQXJyYXlzLmFzTGlzdCgKCQkJCW5ldyBQZXJzb24oMCwgIlNBTVBMRV8wIiwgMTAsIEdlbmRlci5PVEhFUiAsIDEwMCwgIjEyMC4wMCIpLAoJCQkJbmV3IFBlcnNvbigxLCAiU0FNUExFXzEiLCAxMSwgR2VuZGVyLk1BTEUgICwgMTAwLCAiMTIwLjAwIiksCgkJCQluZXcgUGVyc29uKDIsICJTQU1QTEVfMiIsIDEyLCBHZW5kZXIuTUFMRSAgLCAxMDAsICIxMjAuMDAiKSwKCQkJCW5ldyBQZXJzb24oMywgIlNBTVBMRV8zIiwgMTMsIEdlbmRlci5GRU1BTEUsIDEwMCwgIjEwMC4wMCIpLAoJCQkJbmV3IFBlcnNvbig0LCAiU0FNUExFXzQiLCAxNCwgR2VuZGVyLkZFTUFMRSwgMTAwLCAiMTAwLjAwIiksCgkJCQluZXcgUGVyc29uKDUsICJTQU1QTEVfNSIsIDE1LCBHZW5kZXIuRkVNQUxFLCAxMDAsICIxMDAuMDAiKSkpOwoJCQoJCU1hcDxHZW5kZXIsIExpc3Q8UGVyc29uPj4gZ2VuZGVyTWFwID0gcGVvcGxlLnN0cmVhbSgpCgkJCQkuY29sbGVjdChDb2xsZWN0b3JzLmdyb3VwaW5nQnkoUGVyc29uOjpnZXRHZW5kZXIsIENvbGxlY3RvcnMudG9MaXN0KCkpKTsKCQlnZW5kZXJNYXAuZm9yRWFjaCgoZ2VuZGVyLCBwZXJzb25zKSAtPiBTeXN0ZW0ub3V0LnByaW50bG4oZ2VuZGVyICsgIiAiICsgcGVyc29ucykpOwoJfQp9CmVudW0gR2VuZGVyIHsKCU1BTEUsIEZFTUFMRSwgT1RIRVIKfQpjbGFzcyBQZXJzb24gewoJcHJpdmF0ZSBmaW5hbCBpbnQgaWQ7Cglwcml2YXRlIGZpbmFsIFN0cmluZyBuYW1lOwoJcHJpdmF0ZSBmaW5hbCBpbnQgYWdlOwoJcHJpdmF0ZSBmaW5hbCBHZW5kZXIgZ2VuZGVyOwoJcHJpdmF0ZSBmaW5hbCBpbnQgc2FsOwoJcHJpdmF0ZSBmaW5hbCBCaWdEZWNpbWFsIG1vbnRobHlFeHBlbnNlQW1vdW50OwoJcHVibGljIFBlcnNvbihpbnQgaWQsIFN0cmluZyBuYW1lLCBpbnQgYWdlLCBHZW5kZXIgZ2VuZGVyLCBpbnQgc2FsLCBTdHJpbmcgbW9udGhseUV4cGVuc2VBbW91bnQpIHsKCQl0aGlzLmlkID0gaWQ7CgkJdGhpcy5uYW1lID0gbmFtZTsKCQl0aGlzLmFnZSA9IGFnZTsKCQl0aGlzLmdlbmRlciA9IGdlbmRlcjsKCQl0aGlzLnNhbCA9IHNhbDsKCQl0aGlzLm1vbnRobHlFeHBlbnNlQW1vdW50ID0gbmV3IEJpZ0RlY2ltYWwobW9udGhseUV4cGVuc2VBbW91bnQpOwoJfQoJcHVibGljIGludCBnZXRJZCgpIHsKCQlyZXR1cm4gdGhpcy5pZDsKCX0KCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKCQlyZXR1cm4gdGhpcy5uYW1lOwoJfQoJcHVibGljIGludCBnZXRBZ2UoKSB7CgkJcmV0dXJuIHRoaXMuYWdlOwoJfQoJcHVibGljIEdlbmRlciBnZXRHZW5kZXIoKSB7CgkJcmV0dXJuIHRoaXMuZ2VuZGVyOwoJfQoJcHVibGljIGludCBnZXRTYWwoKSB7CgkJcmV0dXJuIHRoaXMuc2FsOwoJfQoJcHVibGljIEJpZ0RlY2ltYWwgZ2V0TW9udGhseUV4cGVuc2VBbW91bnQoKSB7CgkJcmV0dXJuIHRoaXMubW9udGhseUV4cGVuc2VBbW91bnQ7Cgl9CglAT3ZlcnJpZGUKCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CgkJcmV0dXJuICJQZXJzb24gW2lkPSIgKyB0aGlzLmlkICsgIiwgbmFtZT0iICsgdGhpcy5uYW1lICsgIiwgYWdlPSIgKyB0aGlzLmFnZSArICIsIGdlbmRlcj0iICsgdGhpcy5nZW5kZXIgKwoJCQkJIiwgc2FsPSIgKyB0aGlzLnNhbCArICIsIG1vbnRobHlFeHBlbnNlQW1vdW50PSIgKyB0aGlzLm1vbnRobHlFeHBlbnNlQW1vdW50ICsgIl0iOwoJfQp9
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]]