`

重写compareTo方法

    博客分类:
  • java
阅读更多
//JAVA中用于对象排序的比较器Comparable接口和compareTo()方法
//面向对象的三大特性:封装,继承,多态。
//JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo(Object obj)方法。
import java.util.*;
class Person implements Comparable{    //实现了comparable接口,必须重写compareTo方法!!!
	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){   //compareTo方法是实现
     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;
			         		}
			        }
     }  						  //compareTo方法结束
}								//类结束
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);    				//对数组p内的元素进行了遍历操作(排序) 默认的方法是compareTo
    for(int x=0;x<p.length;x++){
     System.out.println(p[x]);   		 //输出数组元素时默认的是toString()方法
     }   
    }
   }
//输出结果:
//姓名:张三4, 年龄:22, 成绩:98.0
//姓名:张三2, 年龄:24, 成绩:96.0
//姓名:张三 , 年龄:23, 成绩:96.0
//姓名:张三3, 年龄:21, 成绩:94.0
//姓名:张三5, 年龄:20, 成绩:89.0
//--------------------------------------------------

分享到:
评论

相关推荐

    关于重写equals,hashcode以及compareTo方法!

    关于重写equals、hashcode以及compareTo方法! equals()方法是Object类中的一个方法,它用于比较两个对象是否相等。然而,它的默认实现是比较对象的引用(地址),而不是比较对象的实际内容。因此,在某些情况下,...

    Hadoop大作业排序.zip

    过重写 compareTo 方法来实现。 在 Mapreduce 中,如果需要自定义类的排序规则,需要让类实现 Writable 的子接口 WritableComparable,重写里面的 write, readFields 6 和 compareTo 方法,所以可以自定义一个类作为...

    day016-list和set笔记以及代码.zip

    如果是自然排序,需要元素实现Comparable接口,重写compareTo方法 如果是定制排序,需要创建TreeSet对象的时候,传入一个Comparetor接口实现类对象,重写compare方法 一般是默认排序用自然排序(Comparable接口)...

    如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写

    当我们创建自定义类并将其对象放入集合(如HashSet)时,往往需要重写这两个方法以确保集合能够正确地处理这些对象。IntelliJ IDEA,作为一款强大的Java集成开发环境,提供了便捷的快捷键功能来帮助开发者快速重写`...

    java集合某个字段按照中文拼音排序.docx

    例如,我们可以创建一个Record类,实现Comparable接口,并重写compareTo方法。在compareTo方法中,我们可以使用String的compareTo方法来比较两个字符串的大小。 ```java public class Record implements Comparable...

    Hadoop平台技术 排序操作案例.docx

    总结来说,Hadoop的排序机制是通过MapTask和ReduceTask的组合操作实现的,而自定义排序则需要实现WritableComparable接口并重写compareTo方法。这种灵活性使得用户可以根据具体业务需求对数据进行复杂排序,从而优化...

    Java自然排序Comparable使用方法解析

    Java中的自然排序是指使用Comparable接口来实现对象的排序,通过重写compareTo方法来控制排序结果。Comparable接口是Java中的一个接口,用于定义对象的自然顺序。它只有一个方法compareTo,用于比较两个对象的顺序。...

    比较Max and min大小

    如果你的类天然具有可比较性,可以实现Comparable接口并重写compareTo方法,这样实例间可以直接比较。例如,String类已经实现了Comparable接口,可以直接进行比较: ```java String maxStr = "Zebra"; String ...

    Java对象排序中文排序SortedSet排序使用和源码讲

    如果你的对象包含一个表示中文的字符串字段,可以在类中实现Comparable接口,重写compareTo方法。例如: ```java public class Person implements Comparable&lt;Person&gt; { private String name; // 构造函数、...

    中兴Java开发笔试题 JSD1304.docx

    题目中Student类放入TreeSet时,如果想要按照num升序,name降序排序,需要实现Comparable接口并在Student类中重写compareTo方法,定义比较规则。同时,如果num相同,则根据name进行比较。具体实现需要考虑num和name...

    java高级面试题汇总

    一般来说,我们需要对一个集合使用自定义排序时,我们就要重写 compareTo 方法或 compare 方法。 8. SynchronizedMap: SynchronizedMap 是一个线程安全的 Map 实现,它可以在多线程环境中使用,提供了同步访问 ...

    基于Android实现ListView的A-Z字母排序和过滤搜索功能完整实例源码.zip

    然后,实现Comparable接口,重写compareTo方法,按照字母顺序对数据进行比较和排序。 4. **过滤搜索功能**:实现过滤搜索功能通常需要一个EditText,用户可以在其中输入关键词。当输入变化时,触发监听事件,调用...

    Visual Studio学生类排序程序c#.rar

    对于学生类,我们可以重写CompareTo方法来实现自定义的比较逻辑,比如按照成绩降序排序: ```csharp public class Student : IComparable { // ...属性定义... public int CompareTo(Student other) { return ...

    【List、Set、数据结构、Collections】.pdf

    使用HashSet存储自定义元素时,需要自定义元素所属的类实现Comparable接口,并重写compareTo方法,以提供元素的自然排序规则。如果需要在HashSet中存储不可变对象,则需要确保对象的相等性判断依据(equals方法)和...

    compareTo用法

    ### compareTo方法详解 在Java编程语言中,`compareTo`方法是一种非常重要的方法,它主要用于对象之间的比较。此方法常用于实现`Comparable`接口时自定义排序逻辑,是Java集合框架中进行排序的基础。 #### ...

    java根据List内对象的属性排序方法

    我们可以通过实现Comparable接口并重写compareTo方法来自定义排序规则。 例如,在上面的代码中,我们定义了一个Student2类,该类实现了Comparable接口,并重写了compareTo方法。在compareTo方法中,我们定义了按照...

    C#通过IComparable实现ListT.sort()排序

    如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo方法来实现。流程如下: 一、第一步我们申明一个类Person但是要继承IComparable接口: using ...

    C#基础教程之IComparable用法,实现ListT.sort()排序

    如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo方法来实现。流程如下:  一.第一步我们申明一个类Person但是要继承IComparable接口: 代码...

    String类下compareTo()与compare()方法比较

    // 运用User类的compareTo方法比较两个对象 } }; public static void main(String[] args) { ArrayList&lt;User&gt; student = new ArrayList(); User user1 = new User(1,"yueliming"); User user2 = new User(2...

Global site tag (gtag.js) - Google Analytics