Java 中对类进行排序的方法(转)

JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo(Object obj)方法。

import java.util.*;

class Person implements Comparable{
private String name;
private int age;
private float score;
public Person(String name,int age,float score){
   this.name=name;
   this.age=age;
   this.score=score;
   }
   public String toString(){
    return "姓名:"+this.name+", 年龄:"+this.age+", 成绩:"+this.score;
    }
    public int compareTo(Object obj){
     Person p = (Person)obj;
     if(p.score>this.score){
      return 1;
      }
      else if(p.score<this.score){
       return -1;
       }
       else{
        if(p.age>this.age){
         return 1;
         }
         else if(p.age<this.age){
         return -1;
        }
         else{
          return 0;
          }
        }
     }
}
public class OODemo35{
   public static void main(String []args){
    Person p[] = new Person[5];
    p[0] = new Person("张三 ",23,96);
    p[1] = new Person("张三2",24,96);
    p[2] = new Person("张三3",21,94);
    p[3] = new Person("张三4",22,98);
    p[4] = new Person("张三5",20,89);
   
    Arrays.sort(p);
    for(int x=0;x<p.length;x++){
     System.out.println(p[x]);
     }   
    }
   }

输出结果:

姓名:张三4, 年龄:22, 成绩:98.0
姓名:张三2, 年龄:24, 成绩:96.0
姓名:张三 , 年龄:23, 成绩:96.0
姓名:张三3, 年龄:21, 成绩:94.0
姓名:张三5, 年龄:20, 成绩:89.0

时间: 2024-07-30 08:54:52

Java 中对类进行排序的方法(转)的相关文章

Java中Arrays类的两个方法:deepEquals和equals

deepEquals和equals是Java中Arrays类的两个静态方法,可是它们之间有什么样的区别呢? 代码一. import java.util.Arrays; public class Test { public static void main(String[] args) { String[][] name1 = {{ "G","a","o" },{ "H","u","a",

Java中Collections类的排序sort函数两种用法 (转http://viver120.blog.163.com/blog/static/60072482013010111228695/)

java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List<T> list)说明:参数是要参与排序列表的List对象                                                               实例说明:参与排序的列表的元素Student必须实现Comparable接口的public int compareTo(

Java 中获取类路径 classpath 的方法

System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLocation().getPath(); String path3 = FreeMarkerWriter.c

105、Java中String类之利用indexOf()方法判断子字符串是否存在

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String args[]) { String str = "helloworld"; // 字符串对象 if (str.indexOf("world") != -1) { // 能找到子字符串 System.out.println(

106、Java中String类之使用contains()方法判断子字符串是否存在

01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String args[]) { String str = "helloworld"; // 字符串对象 if (str.contains("world")) { // 子字符串存在 System.out.println("

【转载】Java中String类的方法及说明

转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数     String(byte[ ] bytes):通过byte数组构造字符串对象.     String(char[ ] value):通过char数组构造字符串对象.     String(Sting original):构造一个original的副本.即:拷贝一个original.     String(Strin

Java中Integer类的方法

字段摘要 static int MAX_VALUE              保持 int 类型的最大值的常量可取的值为 231-1. static int MIN_VALUE              保持 int 类型的最小值的常量可取的值为 -231. static int SIZE              以二进制补码形式表示 int 值的位数. static Class<Integer> TYPE              表示基本类型 int 的 Class 实例. 构造方法摘要

JAVA中Runtime类以及exec()方法,Process的使用

package ioTest.io1; /* * Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. * 这也是jvm实现跨平台的一个重要原因. * 可以通过 getRuntime 方法获取当前运行时. * API分析: * public class Runtime extends Object * 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. * 可以通过 getRuntime 方法获

Java中String类与Integer类的几个方法

计算诸如-123,456,789 + 123,123的值 import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(System.in); String str1, str2; BigInteger a, b; while(cin.hasNext()){ str1 = cin.