栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 核心技术(第八版)卷1:基础知识:例5-8P196EmployeeSortTest

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 核心技术(第八版)卷1:基础知识:例5-8P196EmployeeSortTest

本例子是说:要想使用Arrays 类的 sort() 功能,就必须实现 Comparable 接口,然后自己写一个compareTo()方法,代码如下:

import java.util.*;

public class EmployeeSortTest
{

    public static void main(String [] args)
    {

        Employee_from_interface[] staff=new Employee_from_interface[3];
        //用经理和员工来填充这个staff数组
        staff[0]=new Employee_from_interface("Tom Zhou",35000,2022,7,10);
        staff[1]=new Employee_from_interface("Tom Zhou",75000,2022,7,10);
        staff[2]=new Employee_from_interface("Jerry Mouse",38000,2022,8,10);
        Arrays.sort(staff);
        //打印出数组的信息
        for(Employee_from_interface e:staff)
        {
            System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
        }
    }
}
class Employee_from_interface implements Comparable
{
    public Employee_from_interface(String n,double s,int year,int month,int day)
    {
        name=n;
        salary=s;
        GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
        hireDay=calendar.getTime();
    }
    public String getName()
    {
        return name;
    }
    public double getSalary()
    {
        return  salary;
    }
    public Date getHireDay()
    {
        return hireDay;
    }
    public void raiseSalary(double byPercent)
    {
        double raise=salary*byPercent/100;
        salary+=raise;
    }
    //根据赚钱薪水的多少来 比较雇员
    //返回 负数1, 如果薪水比other 少,0代表相等 ,正数1代表赚的比other 多
    public int compareTo(Employee_from_interface other)
    {
        if(salaryother.salary) return 1;
         return 0;

    }
    private String name;
    private double salary;
    private Date hireDay;
}
class Employee
{
    public Employee(String n,double s,int year,int month,int day)
    {
        name=n;
        salary=s;
        GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
        hireDay=calendar.getTime();
    }
    public String getName()
    {
        return name;
    }
    public double getSalary()
    {
        return  salary;
    }
    public Date getHireDay()
    {
        return hireDay;
    }
    public void raiseSalary(double byPercent)
    {
        double raise=salary*byPercent/100;
        salary+=raise;
    }
    private String name;
    private double salary;
    private Date hireDay;
}


运行结果:

name=Tom Zhou,salary=35000.0
name=Jerry Mouse,salary=38000.0
name=Tom Zhou,salary=75000.0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号