Custos106 2021-05-14 01:59 采纳率: 77.8%
浏览 147
已采纳

初学者,用Java解决这个问题,但是自己写除了查询之外总是会有问题,哪位能帮帮忙?最好是能给个代码

某公司员工拥有若干个职员,职员信息有(工号、姓名、性别、出生年月、职称、出生地、爱好)

1.请设计如下的类

(1)社员(Staff):需要包含上述属性信息;本身支持按照员工工号排序;属性【爱好】要求是不重复的集合结构。

(2)公司(Company):需要包含所有的社员信息;需要支持根据工号和名字查找员工信息的方法。

2.请实现以下功能

(1)创建公司实例,并且添加10个以上的员工信息。

(2)请分别按照工号、姓名、性别、出生年月来排序员工信息,并输出。

(3)输入一个爱好,并判断本公司内是否有这个爱好的员工;若有则输出有这个爱好的员工信息。

(4)先获取公司人员的所有出生地信息,然后按出生地归类

如上海:2人 - 张三李四

     江西:1人 - 王五

  • 写回答

4条回答 默认 最新

  • CSDN专家-Time 2021-05-14 09:18
    关注
    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧