java 为何 无效_java – 为什么compareTo无效导致Collections.sor...
考虑以下compareTo方法,实现Comparable< T>.接口.:
@Override
public int compareTo(MyObject o)
{
if (o.value.equals(value)
return 0;
return 1;
}
显然,程序员将compareTo实现为equals().显然是个错误.我希望这会导致Collections.sort()崩溃,但事实并非如此.相反,它只会给出一个任意结果:排序结果取决于初始排序.
public class MyObject implements Comparable
{
public static void main(String[] args)
{
List objects =
Arrays.asList(new MyObject[] {
new MyObject(1), new MyObject(2), new MyObject(3)
});
Collections.sort(objects);
System.out.println(objects);
List objects2 =
Arrays.asList(new MyObject[] {
new MyObject(3), new MyObject(1), new MyObject(2)
});
Collections.sort(objects2);
System.out.println(objects2);
}
public int value;
public MyObject(int value)
{
this.value = value;
}
@Override
public int compareTo(MyObject o)
{
if (value == o.value)
return 0;
return 1;
}
public String toString()
{
return "" + value;
}
}
结果:
[3, 2, 1]
[2, 1, 3]
我们能否为compareTo的这种奇怪实现提出一个用例,或者它总是无效的.如果是后者,它应该抛出异常,还是甚至不能编译?
java 为何 无效_java – 为什么compareTo无效导致Collections.sor...相关推荐
- java uuid静态方法_Java UUID compareTo()方法与示例
java uuid静态方法 UUID类compareTo()方法 (UUID Class compareTo() method) compareTo() method is available in ...
- java方法声明无效_java 方法声明无效 需要返回类型
如题了代码如下望高手指点/*客户机端程序*/importjava.net.*;importjava.io.*;importjava.awt.*;importjava.awt.event.*;class ...
- java long 比较_Java Long compareTo()方法
Java Long compareTo()方法 java.lang.Long.compareTo() 方法比较两个Long 的对象的数值. 1 语法 public int compareTo(Long ...
- java sleep 失效_java:Thread.sleep()导致同步失效
我测试的一个关于synchronize关键字的例子,如下当我为静态方法inc()加入syn关键字的时候,如果我把Thread.sleep()注释掉,同步效果发生作用,main方法输出了正确的结果100 ...
- java hashtable 并发_Java 并发容器 —— Hashtable 与 Collections.synchronizedMap(HashMap) 的区别...
Hashtable 部分源码 以 Hashtable 的 put 方法为例: Hashtable 保证线程安全的方式在 方法前加上 synchronized 关键字(锁的是类的实例) Collecti ...
- ### Cause: java.sql.SQLSyntaxErrorException: ORA-00903: 表名无效
第一次开发定时任务,很激动,开发完一运行,果然出现了好多问题,都是写结果一直报表名无效的问题-- 仔细检查了一遍又一遍,表名没错.字段没错.类型也没错,找来大佬帮忙看下,结果,没错呀--百度下吧! 百 ...
- java canonicalize_java.io.IOException:java.io.WinNTFileSystem.canonicalize0处的无效参数
我正在使用Eclipse Mars和Tomcat v8.0.30,jre 1.8.0_73.昨天我没有任何问题,但今天我的Tomcat服务器无法启动.弹出一个对话框,它说:"开始在本地主机的 ...
- 如何在Java项目中查找未使用/无效的代码
本文翻译自:How to find unused/dead code in java projects What tools do you use to find unused/dead code i ...
- java d 配置不生效_Tomcat启动失败问题 (指定的主资源集 [D:\java\apache-tomcat-9.0.35\webapps\AppManageSystem] 无效)...
警告: 部署描述符[D:\java\apache-tomcat-9.0.35\conf\Catalina\localhost\AppManageSystem.xml]中值为[/AppManageSys ...
最新文章
- OpenCV+python:分水岭算法
- mysql ls命令,Linux 常用 ls命令详解
- halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建
- linux函数怎么判断文件已更改,Linux下使用md5sum查看文件及程序是否被修改
- complementary prior
- 图论:dij算法优化:双端队列及详细证明
- matlab测量液体液位,基于MATLAB三容水箱液位控制系统.doc
- mysql(mariadb)的安装与使用,mysql相关命令,mysql数据类型
- LeetCode 56. 合并区间(合并区间+排序)
- 用台式机搭建服务器测试环境_2020年十大最佳台式机环境
- 机器学习 | 数学基础
- JAVA使用Gson解析json数据,实例
- 剪辑神器,分享一个可以批量修改大量视频MD5值的工具
- 【SQLPlanet】如何将一维表转化为二维表
- html内外边距区别,css水平边距和垂直边距 css中的内边距和外边距?
- 树莓派如何刷RetroPie,制作一个复古游戏机
- 思睿普信息IT技术服说明
- Flutter学习日记之使用路由进行页面切换
- C++实验3-税收计算
- webpack之css/js/html文件的压缩