zoukankan      html  css  js  c++  java
  • Java实验项目三——职工类对象数组按照职工生日排序

    Program:

    修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序。

    Description:令日期类MyDate和员工类Worker类实现接口Comparable,并实现方法compareTo()

    代码如下:

    MyDate类:

     1 /*
     2  * Description:定义日期时间类,实现Comparable接口
     3  * 
     4  * Written By:Cai
     5  * 
     6  * Date Written:2017-10-18
     7  * 
     8  * 
     9  * */
    10 
    11 package entity;
    12 
    13 
    14 public class MyDate implements Comparable<MyDate> {
    15 
    16     private String year;    //
    17     private String month;   //
    18     private String day;     //
    19     
    20     
    21     public MyDate() {
    22         
    23     }
    24     
    25     public MyDate(String year,String month,String day) {
    26         
    27         this.year = year;
    28         this.month = month;
    29         this.day = day;
    30     }
    31 
    32     
    33     //定义setter和getter方法
    34     public String getYear() {
    35         return year;
    36     }
    37 
    38     public void setYear(String year) {
    39         this.year = year;
    40     }
    41 
    42     public String getMonth() {
    43         return month;
    44     }
    45 
    46     public void setMonth(String month) {
    47         this.month = month;
    48     }
    49 
    50     public String getDay() {
    51         return day;
    52     }
    53 
    54     public void setDay(String day) {
    55         this.day = day;
    56     }
    57     
    58     //覆写toString()方法
    59     public String toString() {
    60         return this.year + "年" + this.month + "月" + this.day + "日";
    61     }
    62     
    63 
    64     //实现Comparable接口的compareTo()方法
    65     @Override
    66     public int compareTo(MyDate temp) {
    67         
    68         //将对象的日期连接成时间戳一起比较
    69         String str1 = this.year + this.month + this.day;
    70         String str2 = temp.getYear() + temp.getMonth() + temp.getDay();
    71         
    72         //直接调用String类的compareTo()方法,按字符串从小到大排序
    73         return str1.compareTo(str2);
    74     }
    75 
    76 }

    Worker类:

      1 /*
      2  * Description:定义职工类,实现Comparable接口
      3  * 
      4  * Written By:Cai
      5  * 
      6  * Date Written:2017-10-18
      7  * 
      8  * 
      9  * */
     10 
     11 package entity;
     12 
     13 import entity.MyDate;
     14 
     15 public class Worker implements Comparable<Worker> {
     16 
     17     String workerId;          //职工号
     18     String workerName;         //职工姓名
     19     String workerSex;          //职工性别
     20     String workerPartment;     //职工部门
     21     MyDate workerBirthday;     //职工生日
     22     MyDate workerBeginDate;    //职工开始工作时间
     23     
     24 
     25     //定义构造方法
     26     public Worker() {
     27         
     28     }
     29     
     30     public Worker(String id,String name,String sex,String partment,MyDate birthday,MyDate beginDate) {
     31         
     32         this.workerId = id;
     33         this.workerName = name;
     34         this.workerSex = sex;
     35         this.workerPartment = partment;
     36         this.workerBirthday = birthday;
     37         this.workerBeginDate = beginDate;
     38     }
     39 
     40     
     41     //定义setter和getter方法
     42     public String getWorkerId() {
     43         return workerId;
     44     }
     45 
     46     public void setWorkerId(String workerId) {
     47         this.workerId = workerId;
     48     }
     49 
     50     public String getWorkerName() {
     51         return workerName;
     52     }
     53 
     54     public void setWorkerName(String workerName) {
     55         this.workerName = workerName;
     56     }
     57 
     58     public String getWorkerSex() {
     59         return workerSex;
     60     }
     61 
     62     public void setWorkerSex(String workerSex) {
     63         this.workerSex = workerSex;
     64     }
     65 
     66     public String getWorkerPartment() {
     67         return workerPartment;
     68     }
     69 
     70     public void setWorkerPartment(String workerPartment) {
     71         this.workerPartment = workerPartment;
     72     }
     73 
     74     public MyDate getWorkerBirthday() {
     75         return workerBirthday;
     76     }
     77 
     78     public void setWorkerBirthday(MyDate workerBirthday) {
     79         this.workerBirthday = workerBirthday;
     80     }
     81 
     82     public MyDate getWorkerBeginDate() {
     83         return workerBeginDate;
     84     }
     85 
     86     public void setWorkerBeginDate(MyDate workerBeginDate) {
     87         this.workerBeginDate = workerBeginDate;
     88     }
     89 
     90     //覆写toString方法
     91     @Override
     92     public String toString() {
     93         return "Worker [workerId=" + workerId + ", workerName=" + workerName
     94                 + ", workerSex=" + workerSex + ", workerPartment="
     95                 + workerPartment + ", workerBirthday=" + workerBirthday
     96                 + ", workerBeginDate=" + workerBeginDate + "]";
     97     }
     98 
     99     //实现接口中compareTo()方法,按照出生日期,从大到小排序
    100     @Override
    101     public int compareTo(Worker temp) {
    102         
    103         return this.getWorkerBirthday().compareTo(temp.getWorkerBirthday());
    104     }
    105     
    106 }

    TestDemo类:

     1 /*
     2  * Description:定义测试类,模拟十个职工的单位,并且排序
     3  * 
     4  * Written By:Cai
     5  * 
     6  * Date Written:2017-10-09
     7  * 
     8  * */
     9 
    10 package main;
    11 
    12 import entity.*;
    13 
    14 public class TestDemo {
    15 
    16     public static void main(String args[]) {
    17         
    18         Worker[] workers = new Worker[10];        //声明Worker类数组对象,大小为10
    19         
    20         //为数组对象依次赋值
    21         for( int i = 0; i < 10; i++ ) {
    22             
    23             workers[i] = new Worker("00000" + i,"worker_" + i,"男","办公室" + i,new MyDate("199" + (9-i), ((9-i)) + "",((9-i)) + ""  ),
    24                     new MyDate("200" + i, (i+1) + "",(i+1) + ""  ));
    25         }
    26         
    27         //对数组按照排序:按照生日由大到小排序
    28         java.util.Arrays.sort(workers);
    29         
    30         //打印数组对象
    31         display(workers);
    32         
    33     }        
    34     
    35     //定义方法,打印Worker类的数组对象信息
    36     public static void display(Worker[] workers) {
    37         
    38         for( int i = 0; i < workers.length; i++ ) {
    39             System.out.println( workers[i] );
    40         }
    41     }
    42     
    43 }
  • 相关阅读:
    MATLAB计算机视觉与深度学习实战
    硬件创业:从产品创意到成熟企业的成功路线图
    Xcode5 创建模板和UIView 关联XIB
    iOS Development: Proper Use of initWithNibName:bundle: Affects UITableViewController
    自定义UIViewController与xib文件关系深入分析
    UIViewController XIB/NIB加载过程
    ios多视图开发中:xib与UIViewController的关联
    UIAlertView、UIActionSheet兼容iOS8
    Xcode6中怎么添加空工程模板
    [OC Foundation框架
  • 原文地址:https://www.cnblogs.com/caizhen/p/7689313.html
Copyright © 2011-2022 走看看