JAVA数组比较排序需要实现Comparable接口,并实现其中的compareTo方法,方可用compareTo进行比较或者用Arrays.sort(arrayObj)进行排序。
/**一个雇员类 实现了比较的接口
* @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;
}
}
这个是一个实现了compareTo接口的雇员类,那么它就可以进行比较和排序了。
测试类:
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("===============比较测试===============");
}
}
compareTo的实现方式:
x.compareTo(y)为例,当x小于y的时候,返回一个负数。当x大于y的时候,返回一个正数。相等的时候返回0
分享到:
相关推荐
java中数组的自定义排序,种类繁多,简单实现,可自由操控。
java数组排序的思想,过程和代码实现。多种数组排序的方法,主要有冒泡排序,堆排序,插入排序, 归并操作(merge), 归并操作(merge),选择排序,希尔排序。
java 数组递增排序 java 数组递增排序 java 数组递增排序
java 部分数组递增排序 java 部分数组递增排序 java 部分数组递增排序
JAVA\数组排序,JAVA语言实现随机数的输入以及数组的排序。JAVA 随机数 数组排序
java冒泡排序 代码为排序源代码 简洁明了 无其他
Java 数组以及排序算法
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
文件读出数组进行选择排序和二分查找文件读出数组进行选择排序和二分查找java实现
JAVA数组的排序方法实例.docx
先声明一个数组,这个数组中可能会存在重复的元素,而且顺序也是杂乱的,要求将这个数组中的重复元素排除掉并将新得到的数组进行递增排序
java实现数组从小到大排序,输出为数组。可以直接拿来用,注释清楚,可读性强,适用于基础练习,课堂作业等
java数组排序经典之一,选择法,效率很高的一种排序方法,内部实现二分搜索法。
JAVA代码实现:用冒泡法将数组进行排序显示,并将删除重复项之后的新数组进行输出
1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排序); 3.选择排序(直接选择排序、堆排序); 4.归并排序;5.基数排序。
JAVA数组排序经典之一,冒泡法,最基础也最容易理解的一种排序方法
java语言对数组分别进行快速排序,选择排序,冒泡排序,插入排序。
Java数组排序总结(冒泡_选择_插入_希尔)__递归算法的复杂度,实用
数组的排序源代码 一维或是二维数组 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现
题目: 假定本学期某班上有5门课,该班上有10人 (1) 请输入该班同学的学号,姓名,5门课的成绩至数组A、B中,再按5门课的总分排序,然后列出排序后的序号,学号,姓名,成绩1~5; (2) 求出5门课的平均成绩