Tag: 比较

使用Arrays.sort()方法对类型对象的数组进行排序

我知道如何使用Arrays.sort()方法按以下方式对对象数组进行排序。 Arrays.sort(array of primitive type); Arrays.sort(array of primitive type, from, to); Arrays.sort(array of an object type); Arrays.sort(array of an object type , from, to); 但我不知道遵循两种方法。 Arrays.sort(array of an object type , comparator); Arrays.sort(array of an object type , from, to, comparator); 有人可以让我知道如何使用这些方法对类型对象的数组进行排序。我请求您添加代码或任何指向.java类的链接。我试图搜索它但找不到它。 谢谢。

比较对象和原语,运算符==如何在Java中工作?

例如: Long objectLong = 555l; long primitiveLong = 555l; System.out.println(objectLong == primitiveLong); // result is true. 是否有调用objectLong.longValue()方法来比较Long to long或者其他一些方式?

RowFilter.NumberFilter:无法处理“混合”具体数字类型

如果至少有一个值(值= = RowFilter中的值,条目中的值)是小数,则会发生。 这是一个失败的测试: @Test public void testRowFilterNumberMixCore() { TestEntry entry = new TestEntry(1.2f); RowFilter filter = RowFilter.numberFilter(ComparisonType.AFTER, 1, 0); assertTrue(entry + “must be included ” + filter, filter.include(entry)); } 输出是: junit.framework.AssertionFailedError: 必须包含[entry:1.2] [RowFilter:ComparisonType = AFTER,equivalentValue:1,comparativeClass:class java.lang.Integer] 原因是NumberFilter回退到将数字与它们的数字进行比较.longValue()如果它们不是同一个类(并且可以相互比较) 知道了这个细节,测试失败并不令人惊讶(在后视中,从未想过这是一个问题;-)一个级别的防御是确保 – 在客户端代码中 – 要比较的数字是相同的类。 这并不总是可能的(想想fi:tableColumn with columnClass Number)所以我想知道是否/如何改进后备。 就像是: if (one instanceof Comparable && one.getClass() == […]

Java:比较整数和字符串 – 性能

我有一个String和一个int,让我们说: String str = “12345”; 和int num = 12345; 。 查看它们是否相同的最快方法是什么, str.equals(“” + num)或num == Integer.parseInt(str) (或者有更快的方法吗?)? 这是Integer.parseInt和String.equals的源代码

当你在arraylist上调用remove(object o)时,它如何比较对象?

当你在java中的arraylist上调用remove(object o)时,它如何比较对象以找到要删除的正确对象? 它是否使用指针? 还是使用Comparable接口比较对象?

用于字节数组的Java Comparator(字典)

我有一个带有byte []键的hashmap。 我想通过TreeMap对其进行排序。 为字典顺序实施比较器的最有效方法是什么?

将Date对象与Java中的TimeStamp进行比较

当我测试这段代码时: java.util.Date date = new java.util.Date(); java.util.Date stamp = new java.sql.Timestamp(date.getTime()); assertTrue(date.equals(stamp)); assertTrue(date.compareTo(stamp) == 0); assertTrue(stamp.compareTo(date) == 0); assertTrue(stamp.equals(date)); 我期待一个真实,真实,真实,虚假。 因为这: 在java.sql.Timestamp的javadoc中,它指出: 注意:此类型是java.util.Date和单独的纳秒值的组合。 只有整数秒存储在java.util.Date组件中。 分数秒 – 纳米 – 是分开的。 传递类型为java.util.Date的值时,Timestamp.equals(Object)方法永远不会返回true,因为日期的nanos组件未知。 因此,Timestamp.equals(Object)方法与java.util.Date.equals(Object)方法不对称。 此外,哈希码方法使用底层的java.util.Date实现,因此在其计算中不包括nanos。 由于Timestamp类和上面提到的java.util.Date类之间存在差异,因此建议代码不要将Timestamp值一般视为java.util.Date的实例。 Timestamp和java.util.Date之间的inheritance关系实际上表示实现inheritance,而不是类型inheritance。 但相反,我会得到一个真实的,虚假的,真实的,虚假的。 有任何想法吗? 编辑:当我用equals方法检查两个日期时出现此问题,但其中一个Date对象来自Hibernate类并且调试我看到该对象包含TimeStamp。 所以equals方法评估为false,然后我发现了这个: http : //mattfleming.com/node/141 但是当我尝试代码时,我会得到不同的结果……如果我不能同时使用equals和compareTo,我应该用什么来检查2个日期是否相同?!?!

深reflection比较等于

我试图通过比较结果对象与原始对象来validation序列化和反序列化例程。 例程可以序列化任意和深度嵌套的类,因此我想要一个比较例程,可以给出原始和最终实例,并反过来遍历每个值类型并比较值,并迭代地潜入引用类型以比较值。 我已经尝试过Apache Commons Lang EqualsBuilder.reflectionEquals(inst1, inst2)但这似乎没有进行非常深入的比较,它只是比较参考类型的相等性,而不是深入研究它们: 以下代码说明了我的问题。 对reflectionEquals的第一次调用返回true,但第二次返回false。 是否有人可以推荐的图书馆例程? class dummy { dummy2 nestedClass; } class dummy2 { int intVal; } @Test public void testRefEqu() { dummy inst1 = new dummy(); inst1.nestedClass = new dummy2(); inst1.nestedClass.intVal = 2; dummy inst2 = new dummy(); inst2.nestedClass = new dummy2(); inst2.nestedClass.intVal = 2; boolean isEqual = EqualsBuilder.reflectionEquals(inst1.nestedClass, […]

Java的图像比较技术

我正在寻找几种方法来比较两个图像,看看它们有多相似。 目前我计划将百分比作为“相似性指数”的最终结果。 我的计划大纲是这样的: 用户选择2个图像进行比较。 使用按钮,可以使用多种不同的方法比较图像。 最后,每个方法旁边都有一个百分比,表示图像基于该方法的相似程度。 我最近做了很多阅读,我读过的一些东西似乎非常复杂和先进,而不是像我这样只有大约一年的Java经验的人。 到目前为止,我读过: 傅立叶变换 – 我发现这在Java中实现相当混乱,但显然Java Advanced Imaging API有一个类。 虽然我不确定如何将输出转换为实际结果 SIFT算法 – 看起来非常复杂 直方图 – 可能是迄今为止最简单的直方图 像素抓取 – 似乎可行,但如果两个图像之间有相当大的变化,它看起来不会产生任何类型的准确结果。 我可能错了? 我还想先使用Sobel滤波器预处理图像,然后进行比较。 问题是实际的比较部分。 所以,是的,我想看看是否有人有想法比较Java中的图像。 希望以前有人在这里做过类似的项目。 我只想获得一些关于可行的比较技术的输入,这些技术在Java中难以实现。 提前致谢

在JAVA中使用System.nanoTime()时,为什么要使用t1-t0 <0,而不是t1 <t0

当我在JAVA中阅读System.nanoTime()API时。 我找到了这一行: 一个应该使用t1 – t0 <0,而不是t1 <t0,因为数字溢出的可能性。 http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#nanoTime() 比较两个nanoTime值 long t0 = System.nanoTime(); … long t1 = System.nanoTime(); 一个应该使用t1 – t0 <0,而不是t1 <t0,因为数字溢出的可能性。 我想知道为什么t1 – t0 < 0是防止溢出的最佳方法。 因为我从其他一些线索中读到A < B比A – B < 0更优选。 Java Integer compareTo() – 为什么使用比较与减法? 这两件事情是矛盾的。