- 浏览: 94181 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
softcc:
Lz,你好。我想知道“for循环的条件根据当前页来计算当前页所 ...
基于Oracle数据库的数据分页原理 -
hezhou_0521:
这也太简单了吧,如果我想把多选的值传到下一个ACTIVITY中 ...
Android单选和多选择按钮:
sort对于不同的对象, 需要自己重写过.
class A implements Comparable{ public int compareTo( Object o ){ A a = (A)o; 具体的比较方法. > 返回值大于0 . <返回值小于0, 相等时候返回0} }
实际调用过程中:
List l = new LinkedList(); l.add( [object[1] of A] ); .... l.add( [object[2] of A] ); Collections.sort(l); System.out.println(l);
以下的详细部分可以参考. 采集自API文档..
public interface Comparable<T>
此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。
实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。
对于类 C 的每一个 e1 和 e2 来说,当且仅当 (e1.compareTo((Object)e2) == 0) 与 e1.equals((Object)e2) 具有相同的布尔值时,类 C 的自然排序才叫做与 equals 一致。注意,null 不是任何类的实例,即使 e.equals(null) 返回 false,e.compareTo(null) 也会抛出 NullPointerException。
强烈推荐(虽然不是必需的)使自然排序与 equals 一致。这是因为在使用其自然排序与 equals 不一致的元素(或键)时,没有显式比较器的有序集合(和有序映射表)行为表现“怪异”。尤其是,这样的有序集合(或有序映射表)违背了根据 equals 方法定义的集合(或映射表)的常规协定。
例如,如果将两个键 a 和 b 添加到一个没有使用显式比较器的有序集合中,使得 (!a.equals((Object)b) && a.compareTo((Object)b) == 0),则第二个 add 操作返回 false(有序集合的大小没有增加),因为从有序集合的角度来看,a 和 b 是等效的。
实际上,所有执行比较的 Java 核心类都具有 equals 一致的自然排序。java.math.BigDecimal 是个例外,它的自然排序把值相等但精确度不同的 BigDecimal 对象(比如 4.0 和 4.00)等同起来。
为了向数学上倾斜,在给定 C 类的基础上定义自然排序的关系 如下:
{(x, y) such that x.compareTo((Object)y) <= 0}。
整体排序的 quotient 是:
{(x, y) such that x.compareTo((Object)y) == 0}。
它直接遵循 compareTo 的协定,商是 C 的等价关系,自然排序是 C的整体排序。当我们说类的自然排序与 equals 一致 时,是指自然排序的商是由类的 equals(Object) 方法定义的等价关系。
{(x, y) such that x.equals((Object)y)}。
compareTo
int compareTo(T o)
在前面的描述中,符号 sgn(expression) 表示数学上的 signum 函数,该函数根据 expression 的值是负数、零还是正数,分别返回 -1、0 或 1。 实现类必须确保对于所有的 x 和 y,都存在 sgn(x.compareTo(y)) == -sgn(y.compareTo(x))。(这意味着如果 y.compareTo(x) 抛出一个异常,则 x.compareTo(y) 也要抛出一个异常。)
实现类还必须确保关系是可传递的:(x.compareTo(y)>0 && y.compareTo(z)>0) 意味着 x.compareTo(z)>0。
最后,实现程序必须确保 x.compareTo(y)==0 意味着对于所有的 z,都存在 sgn(x.compareTo(z)) == sgn(y.compareTo(z))。
强烈推荐 (x.compareTo(y)==0) == (x.equals(y)) 这种做法,但不是 严格要求这样做。一般来说,任何实现 Comparable 接口和违背此条件的类都应该清楚地指出这一事实。推荐如此阐述:“注意:此类具有与 equals 不一致的自然排序。”
o
- 要比较的对象。 ClassCastException
- 如果指定对象的类型不允许它与此对象进行比较。////////////////////////////////////////////////////////////////////////
import java.util.*; public class test{ public static void main( String args[] ) { List l1 = new LinkedList(); l1.add( new Name("Karl", "M") ); l1.add( new Name("Steven", "Lee") ); l1.add( new Name("John", "o") ); l1.add( new Name("Tom", "M") ); System.out.println(l1); Collections.sort(l1); System.out.println(l1); } } class Name implements Comparable{ private String firstName, lastName; public Name(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName(){ return firstName; } public String getLastName(){ return lastName; } public String toString() {return firstName+" "+lastName;} public boolean equals(Object obj) { if(obj instanceof Name) { Name name = (Name) obj; return ( firstName.equals( name.firstName ) && lastName.equals( name.lastName ) ); } return super.equals(obj); } public int hashCode() { return firstName.hashCode(); } public int compareTo( Object o ){ Name n = (Name)o; int lastCmp = lastName.compareTo(n.lastName); return ( lastCmp != 0 ? lastCmp : firstName.compareTo(n.firstName) ); } }
发表评论
-
struts2工作原理
2010-12-31 11:04 664一个请求在Struts2框架中的处理大概分为以下几个步骤: ... -
<logic:empty> <logic:present>之间的区别
2010-12-31 10:58 1097logic:empty标签判断脚本变量是否为null,是否是一 ... -
J2EE中几种业务代理模式的实现和比较
2010-12-30 22:15 824http://www.jdon.com/artichect/b ... -
jeecms加载首页的过程
2010-12-30 22:05 1224jeecms加载首页的过程 收藏 < ... -
jeecms学习
2010-12-30 19:39 847http://xiongzaiqiren.blog.163.c ... -
把jsp网站部署到tomcat的root目录上
2010-12-24 04:09 2653先进入tomcat首页,http://localhost:80 ... -
Comparable接口使用1
2010-12-23 18:34 1097一个实现了Comparable接口的类在一个Collectio ... -
Comparable接口的使用
2010-12-23 18:28 1094利用 Comparable 接口创建自己的类的排序顺序,只是实 ... -
Conllection框架中的Comparator使用笔记
2010-12-23 18:20 894- - 这几天一直在弄自己的RSS解析器。一切顺利,R ... -
pager-taglibs分页标签使用说明1
2010-12-22 14:35 891一简介, Pager-taglib,支持多种风格的分页显 ... -
JForum论坛
2010-11-12 14:26 1821jforum-2.1.8 详细配置 关键字: jforum 本 ... -
接口和抽象类的区别
2010-11-02 00:16 673abstract class和interface是Java语言 ... -
Eclipse快捷键大全(转载)
2010-10-10 15:56 613Ctrl+1 快速修复(最经典 ... -
java类反射 (转载)
2010-10-04 10:02 689Java提供了一套机制来动态执行方法和构造方法,以及数组操作等 ... -
JBoss Tools Eclipse 3.6发布的插件
2010-10-03 17:36 1824JBoss Tools针对新版的Eclipse 3.6发布了新 ... -
JAVA利用httpclient登录开心网
2010-09-19 12:55 1068httpclient简单应用,登录开心网的例子 需要用到的ja ... -
JBPM学习笔记一(环境搭建)
2010-06-27 23:55 10271.什么是JBPM JBPM是一个可扩展、灵活的流程引 ...
相关推荐
这些图标可以直接通过CSS类来使用,方便快捷。 在文档方面,Bootstrap Collections应该提供了详细的使用指南和API参考,帮助开发者了解每个组件的用法和参数设置,从而更好地利用这些资源。 总的来说,Bootstrap ...
java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic...该图详细的列举了并发包下面的结构,包含所有接口和具体实现类。
common-beanutils、commons-colletions、commons-httpclient、commons-lang、commons-logging、ezmorph、json-lib、xom
【书目合集】是一个包含了丰富管理类书籍的资源包,涵盖了各种可以帮助个人提升自我、增强领导力和财务智慧的读物。以下是对压缩包中各个文件内容的详细概述: 1. **Padre Rico, Padre Pobre**(富爸爸,穷爸爸):...
2025最新电工技师考试题及答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
骨科康复医疗领域知识图谱建立及其分析.pdf
基于交易能量框架的多微电网最优能源管理:配网协同优化以降低运营成本, 关键词:Transactive energy,微电网 配网 参考文档:《Optimal Energy Management for Multi-Microgrid Under a Transactive Energy Framework With Distributionally Robust Optimization》2021一区半完美复现 仿真平台:MATLAB YALMIP GUROBI 主要内容:我们制定了一个基于交易能量(TE)框架的上游网络和网络中电网的能源调度的优化问题,以最小化运营成本。 市电网与上游网络之间的能源管理由配电系统运营商(DSO)操作,这不同于传统电力系统中的直接控制信号和固定定价机制。 ,Transactive energy; 微电网; 配网; 能源调度; 运营成本; 配电系统运营商(DSO); 交易能量框架; 优化问题; MATLAB YALMIP GUROBI。,Transactive Energy驱动的微电网配网能源调度优化策略研究
西门子1200 PLC与欧姆龙E5cc温控器双重控制通讯程序:远程触摸屏与本地温控器485通讯实现轮询式控制及温度监测,西门子1200与欧姆龙E5cc温控器 远程+本地双重控制通讯程序 功能:实现西门子1200 PLC对欧姆龙E5cc温控器进行485通讯控制,在触摸屏上设定温度,读取温度 ,也可以在温控器本体设定温度。 达到双重控制 程序采用轮询方式,有通讯故障后再恢复功能,也可以后续根据需要在此基础上扩充台数 器件:西门子1200 1214DC DC DC.昆仑通态TPC7062Ti ,西门子KTP700 Basic PN,欧姆龙E5cc温控器。 说明:是程序,带详细注释程序,触摸屏程序,PLC设置和温控器设置,接线说明书。 ,关键词:西门子1200;欧姆龙E5cc温控器;485通讯控制;远程+本地双重控制;轮询方式;通讯故障恢复;昆仑通态TPC7062Ti;西门子KTP700 Basic PN;详细注释程序;触摸屏程序;PLC设置;温控器设置;接线说明书。,西门子1200与欧姆龙E5cc温控器通讯控制程序:远程本地双重控制及详解
2025专业技术人员继续教育公需课题库(附含答案).pptx
2025医院手术室应急预案考核试题及答案.docx
2025数字化技术基础试题(含答案).docx
2025最新电信5G协优资格认证考试题库附含答案.docx
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
COMSOL裂隙动水注浆扩散模拟:研究水泥-水玻璃与高聚物改性水泥浆液扩散规律及黏度时变特性影响分析,COMSOL裂隙动水注浆扩散数值模拟 针对动水注浆中常用的2种速凝浆液,水泥–水玻璃浆液与高聚物改性水泥浆液,考虑浆液黏度时变特性,应用有限元计算软件COMSOL Multiphysics建立动水条件下裂隙注浆扩散的数值模型,研究动水条件下裂隙注浆扩散规律并分析不同黏度时变特性、初始动水流速与注浆速率对注浆扩散过程的影响。 ,关键词:COMSOL Multiphysics;裂隙动水注浆;扩散数值模拟;速凝浆液;水泥-水玻璃浆液;高聚物改性水泥浆液;浆液黏度时变特性;有限元计算;注浆扩散规律;动水流速;注浆速率。,COMSOL模拟动水注浆扩散规律及影响因素研究
Simulink模型下的纯电动汽车、混合动力汽车及染料电池电动汽车的制动优先与能量管理功能解析,纯电动汽车Simulink模型;混合动力汽车Simulink模型;染料电池电动汽车Simulink模型。 纯电动汽车模型: 制动优先;充电禁止车辆驱动;驱动控制;再生能量回收;紧急停机功能; ,纯电动汽车模型:制动优先;充电禁止驱动;驱动控制;再生能量回收;紧急制动系统; 混合动力汽车模型:燃料类型切换;动力输出控制;能量回收策略;模式切换;效率优化; 染料电池电动汽车模型:染料电池性能;能量转换效率;充电过程模拟;电池管理系统;安全保护措施。,Simulink模型研究:多种能源驱动车辆动力系统控制优化
2025最新初级保育员理论知识考试题库及答案.doc
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat