会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132359个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 319楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 321楼

2020 12 11-----------------

package com.bjsxt;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * 核心业务类
 */
public class Operate {
    private List<Person> list;

    public Operate() {
        this.list = new ArrayList<>();
    }

    /**
     * 用户添加记录业务逻辑控制
     */
    public void addLogic() { //logic:逻辑
        Menu menu = new Menu();
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        while (true) {
            menu.addMenu();             //添加界面
            int item = telNoteRegex.menuItemValidate(1, 3);
            switch (item) {
                case 1:
                    this.addOperation();//添加新记录
                    break;
                case 2:
                    this.showAll();     //查看全记录
                    break;
                case 3:
                    return;             //返回上一级
            }
        }
    }

    /**
     * 用户查询记录业务逻辑控制
     */
    public void searchLogic() {
        Menu menu = new Menu();
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        while (true) {
            menu.searchMenu();              //查找界面
            int item = telNoteRegex.menuItemValidate(1, 7);
            switch (item) {
                case 1:
                    this.searchByName();    //按姓名查找
                    break;
                case 2:
                    this.searchByAge();     //按年龄查找
                    break;
                case 3:
                    this.searchBySex();     //按性别查找
                    break;
                case 4:
                    this.searchByTelNum();  //按电话号码查找
                    break;
                case 5:
                    this.searchByAdd();     //按住址查找
                    break;
                case 6:
                    this.showAll();         //查看全部记录
                    break;
                case 7:                     //返回上一级
                    return;
            }
        }
    }

    /**
     * 修改记录业务逻辑控制
     */
    public void modifyLogic() {
        Menu menu = new Menu();
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        while (true) {
            menu.modifyMenu();              //修改界面
            int item = telNoteRegex.menuItemValidate(1, 3);
            switch (item) {
                case 1:
                    this.showAll();         //查看全部记录
                    break;
                case 2:
                    this.modifyOperation(); //修改指定记录
                    break;
                case 3:
                    return;                 //返回上一级
            }
        }
    }

    /**
     * 删除记录业务逻辑控制
     */
    public void deleteLogic() {
        Menu menu = new Menu();
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        while (true) {
            menu.deleteMenu();                  //修改界面
            int item = telNoteRegex.menuItemValidate(1, 4);
            switch (item) {
                case 1:
                    this.showAll();             //查看全部记录
                    break;
                case 2:
                    this.deleteOperation();     //删除指定记录
                    break;
                case 3:
                    this.deleteAllOperation();  //删除全部记录
                    break;
                case 4:
                    return;                     //返回上一级
            }
        }
    }

    /**
     * 排序记录业务逻辑控制
     */
    public void orderLogic() { //order:顺序、规则
        Menu menu = new Menu();
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        while (true) {
            menu.orderMenu();           //排序界面
            int item = telNoteRegex.menuItemValidate(1, 5);
            switch (item) {
                case 1:
                    this.orderName();   //按名字排序
                    break;
                case 2:
                    this.orderAge();    //按年龄排序
                    break;
                case 3:
                    this.orderSex();    //按性别排序
                    break;
                case 4:
                    this.showAll();     //查看全部记录
                    break;
                case 5:
                    return;             //返回上一级
            }
        }
    }

    /**
     * 添加新记录信息
     */
    public void addOperation() {    //operation:操作
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String name = telNoteRegex.nameValidate();
        String age = telNoteRegex.ageValidate();
        String sex = telNoteRegex.sexValidate();
        String telNum = telNoteRegex.telNumValidate();
        String address = telNoteRegex.addressValidate();
        Person person = new Person(name, age, sex, telNum, address);
        this.list.add(person);
        person.setId(this.list.size());
    }

    /**
     * 查询全部记录
     */
    public void showAll() { //show:显示
        if (this.list.size() == 0) {
            System.out.println("没有任何记录");
            return;
        }
        for (int i = 0; i < this.list.size(); i++) {
            System.out.println(this.list.get(i));
        }
    }

    /**
     * 按姓名查询记录
     */
    public void searchByName() { //by:由,按照
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String name = telNoteRegex.nameValidate();
        boolean flag = true;
        for (int i = 0; i < this.list.size(); i++) {
            if (name.equals(this.list.get(i).getName())) {
                System.out.println(this.list.get(i));
                flag = false;
            }
        }
        if (flag) {
            System.out.println("没有此人记录");
        }
    }

    /**
     * 按年龄查询记录
     */
    public void searchByAge() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String age = telNoteRegex.ageValidate();
        boolean flag = true;
        for (int i = 0; i < this.list.size(); i++) {
            if (age.equals(this.list.get(i).getAge())) {
                System.out.println(this.list.get(i));
                flag = false;
            }
        }
        if (flag) {
            System.out.println("没有此人记录");
        }
    }

    /**
     * 按性别查询记录
     */
    public void searchBySex() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String sex = telNoteRegex.sexValidate();
        boolean flag = true;
        for (int i = 0; i < this.list.size(); i++) {
            if (sex.equalsIgnoreCase(this.list.get(i).getSex())) {
                System.out.println(this.list.get(i));
                flag = false;
            }
        }
        if (flag) {
            System.out.println("没有此人记录");
        }
    }

    /**
     * 按电话号码查询记录
     */
    public void searchByTelNum() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String telNum = telNoteRegex.telNumValidate();
        boolean flag = true;
        for (int i = 0; i < this.list.size(); i++) {
            if (telNum.equals(this.list.get(i).getTelNum())) {
                System.out.println(this.list.get(i));
                flag = false;
            }
        }
        if (flag) {
            System.out.println("没有此人记录");
        }
    }

    /**
     * 按地址查询记录
     */
    public void searchByAdd() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        String address = telNoteRegex.addressValidate();
        boolean flag = true;
        for (int i = 0; i < this.list.size(); i++) {
            if (address.equals(this.list.get(i).getAddress())) {
                System.out.println(this.list.get(i));
                flag = false;
            }
        }
        if (flag) {
            System.out.println("没有此人记录");
        }
    }

    /**
     * 修改指定记录
     */
    public void modifyOperation() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        Menu menu = new Menu();
        //对被修改的记录的序号进行验证,可以使用对菜单项验证的方法来完成
        System.out.println("请输入记录的序号");
        int itemNum = telNoteRegex.menuItemValidate(1, this.list.size());
        menu.subModifyMenu();
        int menuItem = telNoteRegex.menuItemValidate(1, 6);
        switch (menuItem) {
            case 1:
                String name = telNoteRegex.nameValidate();
                (this.list.get(itemNum - 1)).setName(name);
                break;
            case 2:
                String age = telNoteRegex.ageValidate();
                (this.list.get(itemNum - 1)).setAge(age);
                break;
            case 3:
                String sex = telNoteRegex.sexValidate();
                (this.list.get(itemNum - 1)).setSex(sex);
                break;
            case 4:
                String telNum = telNoteRegex.telNumValidate();
                (this.list.get(itemNum - 1)).setTelNum(telNum);
                break;
            case 5:
                String address = telNoteRegex.addressValidate();
                (this.list.get(itemNum - 1)).setAddress(address);
                break;
            case 6:
                return;

        }
    }

    /**
     * 删除指定记录
     */
    public void deleteOperation() {
        TelNoteRegex telNoteRegex = new TelNoteRegex();
        System.out.println("请输入记录序号");
        int itemNum = telNoteRegex.menuItemValidate(1, this.list.size());
        this.list.remove(itemNum - 1);
        //重新为记录设置新的序号
        for (int i = 0; i < this.list.size(); i++) {
            (this.list.get(i)).setId(i + 1);
        }
        System.out.println("删除成功!请继续操作!");
    }

    /**
     * 删除全部记录
     */
    public void deleteAllOperation() {
        this.list.clear();
        System.out.println("电话中的记录已清空,请继续操作!");
    }

    /**
     * 按用户姓名排序记录
     */
    public void orderName() { //order:规则,顺序
        Collections.sort(this.list, new OrderByName());
        for (int i = 0; i < this.list.size(); i++) {
            (this.list.get(i)).setId(i + 1);
        }
    }

    /**
     * 按用户年龄排序记录
     */
    public void orderAge() {
        Collections.sort(this.list, new OrderByAge());
        for (int i = 0; i < this.list.size(); i++) {
            (this.list.get(i)).setId(i + 1);
        }
    }

    /**
     * 按用户性别排序记录
     */
    public void orderSex() {
        Collections.sort(this.list, new OrderBySex());
        for (int i = 0; i < this.list.size(); i++) {
            (this.list.get(i)).setId(i + 1);
        }
    }

    /**
     * 按姓名排序的比较器
     */
    class OrderByName implements Comparator<Person> {
        @Override
        public int compare(Person o1, Person o2) {
            return o1.getName().compareTo(o2.getName());
        }
    }

    /**
     * 按年龄排序的比较器
     */
    class OrderByAge implements Comparator<Person> {
        @Override
        public int compare(Person o1, Person o2) {
            return o1.getAge().compareTo(o2.getAge());
        }
    }

    /**
     * 按性别排序的比较器
     */
    class OrderBySex implements Comparator<Person> {
        @Override
        public int compare(Person o1, Person o2) {
            return o1.getSex().compareTo(o2.getSex());
        }
    }


}

添加新记录中信息中

person.setId(this.list.size());
这个方法可以改成用getId 方法吗,要怎么使用?

JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 322楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 323楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 324楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 326楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 328楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 329楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 330楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637