关闭

自定义类比较大小以及按照规则排序。

489人阅读 评论(0) 收藏 举报
分类:

  我们在开发的时候会创建许多对象,而这些对象有时候可能需要排序,排序就需要比较大小,但是java没有提供比较自定义对象大小的方法,所以需要我们自己实现。
  实现比较自定义对象有两种方法,实现接口Comparable或者Comparator,今天我根据我自己的理解讲讲如何实现Comparable接口来比较自定义对象的大小。
  第一步:自定义Person类,并且实现接口Comparable,并且重写接口中的方法 public int compareTo(Object obj)。

class Person implements Comparable {
    private int age;
    //假设对象根据年龄比较大小,且排序顺序为降序。
    @override
    public int compareTo(Object obj){
        //异常判断
        if(null == o){
            throw new NullPointerException("所比较对象不能为空");
        }

        Person p = (Person)o;
        return obj.age - this.age;
    }
}
第二步:外部调用
public static void main(String[] args){
    Person p1 = new Person(4);
    Person p2 = new Person(6);
    Person p3 = new Person(1);
    Person[] ps = new Person[3];
    ps[0] = p1;
    ps[1] = p2;
    ps[2] = p3;
    //如果使用系统自带的排序方法,就必须要实现Comparable接口。
    Array.sort(ps);
}
0
0
查看评论

(python)创建一个可以比较的自定义类

示例: 对于论坛中的帖子,需要根据帖子的点赞数,浏览数和评论数进行排序。三个排序标准的优先级顺序为:点赞数>浏览数>评论数。 也就是说,先按点赞数排序,如果点赞数相等,其次才按浏览数,最后才是评论数。 实现: class Post: """&q...
  • Allenalex
  • Allenalex
  • 2016-06-24 09:19
  • 1635

python类型比较的3种方式

通过types模块的类成员来判断,其实所有python中的类型都是这个types模块中类型的实例。 import types  type(x) is types.IntType # 判断是否int 类型  type(x) is types.StringType #是否s...
  • five3
  • five3
  • 2012-10-22 14:42
  • 17866

java 自定义类型比较大小

如果是自己写了一个class 作数据类型需要比较大小则需implements Comparable 接口, 并在class 中重写compareTo()方法,例如: public class A implements Comparable{ …… public A(double s){scor...
  • veryv
  • veryv
  • 2011-06-28 06:52
  • 2094

自定义比较器

1、自定义的比较器需要实现接口Comparator,并重写里面的方法compare,下面是一个比较器的框架 package testXml; import java.util.Comparator; public class PolicyComporator implements Comparato...
  • hanqiuting
  • hanqiuting
  • 2016-05-11 10:09
  • 662

TreeSet对自定义类排序

1、实现Comparable接口的compareTo方法: class Z implements Comparable { int age; String name; public Z(int age,String name) { this.name=...
  • DH2442897094
  • DH2442897094
  • 2017-04-07 23:02
  • 190

对自定义对象进行排序(C++/Java)

自定义了对象,如何按照自定对象中某一或多个元素对其进行排序呢?以下分别从C++和java对其进行实现。 一:C++ /* 实现对自定义的对象类型进行排序(按照其中的元素),首先将对象存放在vector中,然后利用algorithm库函数中的sort对其进行排序,需要重写排序函数以函数名 作为...
  • Lu597203933
  • Lu597203933
  • 2014-12-06 17:08
  • 2567

MFC edit控件实现自动换行

必须设置Vertical Scrollbar = TRUE 必须设置MultiLine = TRUE 必须设置Horizontal Scrollbar = FALSE 必须设置Auto HScroll&#...
  • a200638012
  • a200638012
  • 2016-07-08 17:22
  • 4780

设置MFC Edit control可以换行显示

MFC Edit control可以换行显示 1.设置edit control 属性Multiline为true 2.写入数据时,想换行的时候写入"\r\n"即可,CString str.Replace("\n","\r\n"); ...
  • a780902723
  • a780902723
  • 2014-12-09 16:52
  • 2463

MFC中EDIT控件实现换行

一、通过回车换行: 这里要有两个设置 .将控件的属性设置为Mutilines->true; .将控件的另一个属性设置为Want return->true. 水平和垂直滚动条设置: 水平滚动条,控件属性设置为:Horizontal Scroll->TRUE ...
  • dearwind153
  • dearwind153
  • 2015-12-09 21:13
  • 3889

使用C语言编写Python扩展——创建自定义类型(1)

转载地址: 使用C语言编写Python扩展3——创建自定义类型(1) 在Python代码中如果要创建一个自定义类使用class关键字即可,但是在C代码中就没那么方便了。 首先简单介绍下Python中的类型。在python中一切皆对象,python中有两种对象: 一种是类型对象(cla...
  • wang15061955806
  • wang15061955806
  • 2017-05-26 14:21
  • 339
    个人资料
    • 访问:1492次
    • 积分:76
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类