`
liulimin
  • 浏览: 1081 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

JAVA 数组比较排序

    博客分类:
  • Java
 
阅读更多
    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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics