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

老师,这是代码

import java.util.Calendar;
import java.util.*;

public class TestCalendar {
    public static void main(String[] args) {

        //得到日期相关元素
        GregorianCalendar calendar = new GregorianCalendar
                (2020, 12, 13, 15, 19, 12);
        int year = calendar.get(Calendar.YEAR);
        int month=calendar.get(Calendar.MONTH);
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        int day2=calendar.get(Calendar.DATE);
        //日,Calendar.DAT_OF_MONTH和Calendar.DATE同义。
        int date=calendar.get(Calendar.DAY_OF_WEEK);
        //星期几,这里是1-7,周日是1,周一是7
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println(day2);
        System.out.println(date);

        //设置日期
        GregorianCalendar calendar2=new GregorianCalendar();
        calendar2.set(Calendar.YEAR,1997);
        calendar2.set(Calendar.MONTH,9);     //月份0-11
        calendar2.set(Calendar.DATE,3);
        calendar2.set(Calendar.HOUR_OF_DAY,12);
        calendar2.set(Calendar.MINUTE,13);
        calendar2.set(Calendar.SECOND,14);
        printCalendar(calendar2);

        //日期计算
        GregorianCalendar calendar3=new GregorianCalendar
                (2020,11,13,11,22,33);
        calendar3.add(Calendar.MONTH,-1);
        calendar3.add(Calendar.DATE,+1);
        printCalendar(calendar3);

        //日历对象和时间对象的转化
        Date d=calendar3.getTime();
        GregorianCalendar calendar4=new GregorianCalendar();
        calendar4.setTime(new Date());

        static void printCalendar(Calendar calendar){
            int year2 =calendar.get(Calendar.YEAR);
            int month2=calendar.get(Calendar.MONTH)+1;
            int day3=calendar.get(Calendar.DATE);
            int date2=calendar.get(Calendar.DAY_OF_WEEK)-1;   //星期几
            String week=""+((date==0)?"日":date);

            int hour=calendar.get(Calendar.HOUR);
            int minute=calendar.get(Calendar.MINUTE);
            int second=calendar.get(Calendar.SECOND);
            System.out.println("yyyy年MM月dd日 hh时ff分mm秒");

        }


    }
}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2378楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 2380楼

老师,我的Users  类如下:


import java.util.Objects;

public class Users implements Comparable<Users>{
  private String usersname;
  private int  usersage;

    public Users(String yanggege, String s) {
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Users users = (Users) o;
        return usersage == users.usersage &&
                Objects.equals(usersname, users.usersname);
    }

    @Override
    public int hashCode() {
        return Objects.hash(usersname, usersage);
    }

    public Users(String usersname, int usersage) {
        this.usersname = usersname;
        this.usersage = usersage;
    }

    public String getUsersname() {
        return usersname;
    }

    public void setUsersname(String usersname) {
        this.usersname = usersname;
    }

    public int getUsersage() {
        return usersage;
    }

    public void setUsersage(int usersage) {
        this.usersage = usersage;
    }

    @Override
    public String toString() {
        return "Users{" +
                "usersname='" + usersname + '\'' +
                ", usersage=" + usersage +
                '}';
    }

    @Override
    public int compareTo(Users o) {
        if (this.usersage>o.getUsersage()){
            return 1;
        }
        if (this.usersname==o.getUsersname()){
            return this.usersname.compareTo(o.usersname);
        }
        return -1;
    }
}

TreeMap 代码:

 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;

public class TreeMapTset {
    public static void main(String[] args) {

        //实例化RreeMap
        Map<Users,String> map=new TreeMap<>();
         Users u1=new Users("杨明","24");
         Users u2=new Users("李飞","19");
         Users u3=new Users("张哥","10");
         Users u4=new Users("陈飞信","55");
         map.put(u1,"杨明");
         map.put(u2,"zangxiao");
         map.put(u3,"sixiaozi");
         map.put(u4,"lixiaozo");
         Set<Users> set=map.keySet();
         for (Users str:set){
            System.out.println(str+"====="+map.get(str));
         }

    }


}

输出:请问下是哪里错了。

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 2381楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/异常机制 2383楼

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 基础深化和提高/智能电话本项目实战 2385楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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