2 lubeini lubeini 于 2016.03.15 14:47 提问

java中compareTo函数可以在同一个类中重写多次吗?

我有一个对象数组,想按照不同属性对这个数组进行排序。但是如果重写compareTo函数的话好像只能按照某一个属性进行排序。现在我既想按照年龄又想按照分数排序,那应该怎么写呢?

1个回答

luochoudan
luochoudan   Ds   Rxr 2016.03.15 15:13
已采纳

不行,一个Comparable对应一种顺序标准,你这样按年龄又按分数,明显是两个定制顺序,结果自然是两种。建议要么合成一个逻辑;要么用两个集合来存放。

lubeini
lubeini 回复丑旦: 好的,谢谢!
2 年多之前 回复
luochoudan
luochoudan 回复lubeini: 直接排出两种顺序,用两个集合来盛放,分别取用即可。
2 年多之前 回复
lubeini
lubeini 那如果是一个点对象集合,第一次按照x坐标排序,第二次按照y坐标排序。我该怎么处理呢?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java 关于重写compareTo方法
概述"当一个类实现类Comparable接口,此类就可以跟很多泛型算法(generic algorithm) 以及依赖于该接口 的集合实现(Collection implementation)进行协作"比如:字母排序,按数字排序,年代排序等等某种**定制排序** Comparable接口public interface Comparable<T>{ int compareTo(T t); }int
java 集合 TreeMap 键是对象,TreeMap中要重写compareTo方法
import java.util.TreeMap; //键是对象,TreeMap中要重写compareTo(对应着要重写toString方法)方法,否则会出现异常; public class TreeMapdemo  { public static void main(String[] args)  { TreeMap map = new TreeMap();  //声明Map对象
comparable的compareTo( )方法
就是说,如果你想对自己写的类排序,你就把自己写的这个类实现Comparable接口,然后写一个comparaTo方法来规定这个类的对象排序的顺序。在这个方法中,如果返回-1,则当前对象排前面,返回1,就排后面         ,0,就相等。例如:import java.util.*;public class A {    public static void main(String args[])
String类中自动重写compareTo( )方法对汉字的比较
博主的更多文章>>  String类中自动重写compareTo( )方法对汉字的比较 2016-09-24 09:23:29 转载自:http://a001807.blog.51cto.com/9804844/1856006 1 在看Java从入门到精通的
实现Comparable接口和Comparator接口,并重写compareTo方法和compare方法
实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 java.util.Comparator(接口) + compare(重写方法). 这两个接口我们非常的熟悉,但是 在用的时候会有一些不知道怎么下手的感觉,现在用案例进行总结,消除对这个知识点的理解盲区(个人的理解,如果有错误 请多多指教)。 一,在实际的需求中,我们需要根据对象的各种属
【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
1.何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念(不同于对象身份的概念)。 2.设计equals() [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”,检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域,使用==比较; [2.2]对于对象引用域,递归调用equals方
java使用compareTo实现一个类的对象之间比较大小
首先定义一个对象,注意这个对象必须实现Comparable接口,并重写这个接口的compareTo方法 package cn.demo; public class Student implements Comparable{ private int number=0; //学号 private String name=""; //学生姓名 private String ge
TreeSet中类实现compareTo以及内部类中实现compareTo
刚刚开始学习JAVA课程,博客恰好这时候建好,写写感想,陆续会补上前期的学习过程。 目前还没有学Map TreeSet作为集合中一个重要的组成,虽说用的没有ArrayList常见,但还是非常重要的,主要用于非重复集合的排序 先说一下TreeSet,集合中必须包括的是引用类型,若想输入int,则需要转化为Inetger,成为引用类型,并且用ComeparTo方法判断正在输入的字段和集合中包括的
重写compareTo方法,按不同方式实现排序,小程序
package com.paixu; import com.paixu.Car; public class Car implements Comparable{ public final static int STRNO=1; public final static int STRNAME=2; public final static int PRICE=3; public final
覆写JAVA中的CompareTo()方法与toString()方法的实现
package org.lza; import java.util.Arrays; public class ComparableDemo { public static void main(String args[]){ Student stu[]={new Student("张三",20,90.0f),new Student("李四",22,90.0f),new Student("王