JAVA 数组比较排序

[size=medium]JAVA数组比较排序需要实现Comparable接口,并实现其中的compareTo方法,方可用compareTo进行比较或者用Arrays.sort(arrayObj)进行排序。[/size]
/**一个雇员类	实现了比较的接口
* @author llm
*
*/
public class Employee implements Comparable<Employee>
{
/**
* 姓名
*/
private String name;

/**
* 工资
*/
private float money;

/**构造函数
* @param name
* @param money
*/
Employee(String name,float money)
{
this.name=name;
this.money=money;
}

/**
* 显示雇员信息
*/
public void showEmployeeMessage()
{
System.out.println("姓名:"+name+",工资:"+money);
}


//实现比较接口的方法
@Override
public int compareTo(Employee anotherOne)
{
if(money > anotherOne.getMoney())
{
return 1;
}else if(money < anotherOne.getMoney())
{
return -1;
}
return 0;
}


public String getName()
{
return name;
}


public void setName(String name)
{
this.name = name;
}


public float getMoney()
{
return money;
}


public void setMoney(float money)
{
this.money = money;
}

}

[size=medium]这个是一个实现了compareTo接口的雇员类,那么它就可以进行比较和排序了。
测试类:[/size]

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**雇员测试类
* @author CXY
*/
public class EmployeeTest
{
public static void main(String[] args) throws Exception
{
Employee[] employeeA=new Employee[3];

employeeA[0]=new Employee("小红", 5000.5f);
employeeA[1]=new Employee("小黄", 8000.8f);
employeeA[2]=new Employee("小白", 5000.6f);

System.out.println("工资排序前:");
for(Employee one:employeeA)
{
one.showEmployeeMessage();
}

Arrays.sort(employeeA);

System.out.println("=====================");
System.out.println("工资排序后:");
for(Employee one:employeeA)
{
one.showEmployeeMessage();
}

System.out.println("=====================");
if(employeeA[1].compareTo(employeeA[0])==1)
{
System.out.println(employeeA[1].getName()+"比"+employeeA[0].getName()+"工资高");
}else if(employeeA[1].compareTo(employeeA[0])==-1)
{
System.out.println(employeeA[1].getName()+"比"+employeeA[0].getName()+"工资低");
}else
{
System.out.println(employeeA[1].getName()+"和"+employeeA[0].getName()+"工资一样");
}

System.out.println("===============比较测试===============");


}

}

[size=medium]compareTo的实现方式:
x.compareTo(y)为例,当x小于y的时候,返回一个负数。当x大于y的时候,返回一个正数。相等的时候返回0[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值