import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static class Staff{
public Integer staffId;
public String name;
public Integer gender;
public Date birthday;
public String position;
public String birthplace;
public List<String> hobbies;
public Integer getStaffId() {
return staffId;
}
public void setStaffId(Integer staffId) {
this.staffId = staffId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getGender() {
return gender;
}
public void setGender(Integer gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getBirthplace() {
return birthplace;
}
public void setBirthplace(String birthplace) {
this.birthplace = birthplace;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
@Override
public String toString() {
return "Staff{" +
"staffId=" + staffId +
", name='" + name + '\'' +
", gender=" + gender +
", birthday=" + birthday +
", position='" + position + '\'' +
", birthplace='" + birthplace + '\'' +
", hobbies=" + hobbies +
'}';
}
}
public static class Company{
public List<Staff> staffs;
// 获取
public Staff getStaff(Integer id){
return staffs.stream().filter(staff -> staff.staffId.equals(id)).findFirst().get();
}
public Staff getStaff(String name){
return staffs.stream().filter(staff -> staff.name.equals(name)).findFirst().get();
}
public List<Staff> getHobbies(String hobbies){
return staffs.stream().filter(staff -> staff.hobbies.contains(hobbies)).collect(Collectors.toList());
}
public void Place(){
Map<String, List<Staff>> singleMap = staffs.stream().collect(Collectors.groupingBy(Staff::getBirthplace));
for(String key:singleMap.keySet()){
System.out.println("城市:"+key+" "+"人数:"+singleMap.get(key).size()+Company.getNames(singleMap.get(key)));
}
}
public static String getNames(List<Staff> staffs){
List<String> names = new ArrayList<String>();
for(int i=0;i<staffs.size();i++){
names.add(staffs.get(i).name);
}
return names.toString();
}
}
public static void main(String args[]){
Company company = new Company();
List<Staff> staffs = new ArrayList<Staff>();
company.staffs =staffs;
for(int i=0;i<11;i++){
Staff item = new Staff();
item.staffId = i;
item.name = "张三"+i;
item.birthday = new Date(1980,01,01);
item.gender = 1;
if(i%2==0){
item.birthplace="江苏";
List<String> hobbies = new ArrayList<String>();
hobbies.add("打网球");
item.hobbies = hobbies;
}
else{
item.birthplace="广东";
List<String> hobbies = new ArrayList<String>();
hobbies.add("游泳");
item.hobbies = hobbies;
}
company.staffs.add(item);
}
for (int i =0;i<11;i++){
System.out.println(staffs.get(i).toString());
}
System.out.println("请输入爱好:");
Scanner scanner = new Scanner(System.in);
String place = scanner.nextLine();
List<Staff> list2 = company.getHobbies(place);
for (int i =0;i<list2.size();i++){
System.out.println(list2.get(i).toString());
}
company.Place();
}
}
结果:
"C:\Program Files\Java\jdk1.8.0_45\bin\java.exe" "-javaagent:F:\IntelliJ IDEA 2021.1\lib\idea_rt.jar=11512:F:\IntelliJ IDEA 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_45\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_45\jre\lib\rt.jar;G:\BaiduNetdiskDownload\app\out\production\app" Main
Staff{staffId=0, name='张三0', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
Staff{staffId=1, name='张三1', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=2, name='张三2', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
Staff{staffId=3, name='张三3', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=4, name='张三4', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
Staff{staffId=5, name='张三5', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=6, name='张三6', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
Staff{staffId=7, name='张三7', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=8, name='张三8', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
Staff{staffId=9, name='张三9', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=10, name='张三10', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='江苏', hobbies=[打网球]}
请输入爱好:
游泳
Staff{staffId=1, name='张三1', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=3, name='张三3', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=5, name='张三5', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=7, name='张三7', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
Staff{staffId=9, name='张三9', gender=1, birthday=Sun Feb 01 00:00:00 CST 3880, position='null', birthplace='广东', hobbies=[游泳]}
城市:广东 人数:5[张三1, 张三3, 张三5, 张三7, 张三9]
城市:江苏 人数:6[张三0, 张三2, 张三4, 张三6, 张三8, 张三10]
Process finished with exit code 0