Java中通过接口实现两个对象的比较,首先类要实现comparable接口,使用泛型规定了要进行比较的对象所属的类,而comparable接口的实现必须要定义的方法则是compareTo方法,在方法中传入此类的另一个对象,通过选定的成员变量与之比较,如果大于则返回1,小于返回-1,相等返回0.

例子代码:

package com.study.write; import java.util.*; public class EmployeeSortTest { public static void main(String[] args) { Employee2[] staff = new Employee2[3]; staff[0] = new Employee2("Harry", 35000); staff[1] = new Employee2("Danny", 40000); staff[2] = new Employee2("Tony", 20000); Arrays.sort(staff); //print out information about all Employee objects for(Employee2 e:staff) System.out.println("name = " + e.getName() +" " + "salary = " + e.getSalary()); } } class Employee2 implements Comparable<Employee2> { public Employee2(String n, double s) { name = n; salary = s; } public String getName() { return name; } public double getSalary() { return salary; } public void raiseSalary(double byPecent) { double raise = salary * byPecent / 100; salary += raise; } /**compares employees by salary @param other another Employee object @return a negative value if this employee has a lower salary than otherObject, 0 if the salaries are the same, a positive value otherwise */ public int compareTo(Employee2 other) { if(salary < other.salary) return -1; if(salary > other.salary) return 1; return 0; } private String name; private double salary; }
运行结果为:

转载于:https://www.cnblogs.com/JPAORM/archive/2012/03/20/2510277.html

Java中实现对象的比较相关推荐

  1. 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?

    写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...

  2. java中String对象和String变量

    2019独角兽企业重金招聘Python工程师标准>>> java中String对象和String变量 (2011-12-27 20:40:27) 转载▼ 标签: it 最近在论坛上看 ...

  3. Java中的对象序列化操作

    文章目录 1 Java中的对象序列化操作 1 Java中的对象序列化操作 首先看一下对象序列化的操作步骤: 创建一个类,继承Serializable接口 创建对象 将对象写入文件 从文件读取对象信息 ...

  4. 【译】Java中的对象序列化

    前言 好久没翻译simple java了,睡前来一篇. 译文链接: http://www.programcreek.com/2014/01/java-serialization/ 什么是对象序列化 在 ...

  5. Java中,一切皆是对象——java中的对象类型与基本数据类型的区别

    起因:取一个list给另一个list赋值,然后在另一个list中取出进行修改.list其中类型为对象时,String时,基本数据类型时. [java中的对象类型与基本数据类型的区别] #声明和实例化 ...

  6. java中String对象作为参数传递问题

    问题 java中将对象作为参数传递究竟是值传递还是引用传递? 1.基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的. 2.对象作为参数传递时,是把对象在内存中的地址拷贝 ...

  7. java 监控对象是什么_多线程-Java中的对象监视器是什么意思? 为什么要使用这个词?...

    多线程-Java中的对象监视器是什么意思? 为什么要使用这个词? 在阅读有关Java线程的文章时,我经常注意到这样的表达:"当前线程是该对象的监视器的所有者". 我的意思是:线程有 ...

  8. java中给对象的List集合去重的几种方法(Lambda)

    java中给对象的List集合去重的几种方法 前言 一.lambda表达式的去重方式 二.Stream API中的collect去重方法 三.Stream API 中的distinct方法去重 前言 ...

  9. Java中的对象类型像引用还是指针,谁是谁非?

    Java中的对象类型像引用还是指针,谁是谁非? 作者:海枫 地址:http://blog.csdn.net/linyt 作为一名程序员,我们应该对新知识和新技术刨根问底,而不应泛泛而谈.我未曾接触到J ...

  10. 深圳Java培训:Java中的对象流和序列化

    深圳Java培训:Java中的对象流和序列化 最近,在讲流的使用,其中对象流的作用其实就是将自定义类的对象与流之间相互转换的流. 看起来还是挺简单的,那么看下面的例子: public class St ...

最新文章

  1. 图像处理 100 问!!
  2. 基于OpenCV提取特定区域
  3. 清华大学 唐杰 计算机学院 怎么样,我国首位原创虚拟学生,后期希望“她”能够像人一样进行创新...
  4. break、continue和return的使用
  5. arc下内存泄漏的解决小技巧
  6. <马哲>社会基本矛盾2017-12-27
  7. JQuery常用功能的性能优化
  8. Laravel 的 Eloquent ORM学习
  9. 你与一份好简历之间的距离
  10. PS图片后期之超简易造光调色方法
  11. LeetCode 1122. 数组的相对排序
  12. web视图引擎框架对比
  13. java 泛型 多态_Java 多态
  14. Firefox-常用扩展
  15. redis 中一个字段 修改map_Redis中bitmap的妙用
  16. 时钟模块ds1302的使用
  17. Jade win10 安装教程
  18. 数字电路基础知识——时序逻辑电路之存储器(SRAM、DRAM、ROM)
  19. android输入法剪贴板,QQ输入法手安卓V5.4剪贴板 任性粘贴
  20. 现在才知道,菊花茶可不能随便喝!

热门文章

  1. Journey Of Code组组员贡献率
  2. 计算机各种编码来历及区别
  3. 《Algorithms》—— Dijkstra 的双栈算术表达式求值算法
  4. 想悄悄的做渗透测试?这里的工具足够你用了
  5. 阿里云_数加平台类HQL的那些坑
  6. 阿里腾讯极其看重的数据中台,我用大白话给你解释清楚了
  7. Web报表工具FineReport二次开发JS之字符串
  8. 【案例实战】餐饮企业分店财务数据分析系统解决方案:业务需求
  9. maven 打包java项目_如何使用maven打包java项目?
  10. php 加tab键,php 生成Tab键或逗号分隔的CSV