Questions tagged «compareto»

4
BigDecimal equals()与compareTo()
考虑简单的测试类: import java.math.BigDecimal; /** * @author The Elite Gentleman * */ public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub BigDecimal x = new BigDecimal("1"); BigDecimal y = new BigDecimal("1.00"); System.out.println(x.equals(y)); System.out.println(x.compareTo(y) == 0 ? "true": "false"); } } …

17
如何简化一个空安全的compareTo()实现?
我正在compareTo()为这样的简单类实现方法(以便能够使用Collections.sort()和Java平台提供的其他功能): public class Metadata implements Comparable<Metadata> { private String name; private String value; // Imagine basic constructor and accessors here // Irrelevant parts omitted } 我希望这些对象的自然排序是:1)按名称排序,以及2)如果名称相同,则按值排序;两种比较均应不区分大小写。对于这两个字段,空值都是完全可以接受的,因此compareTo在这些情况下不得中断。 我想到的解决方案是遵循以下思路的(我在这里使用“保护子句”,而其他人可能更喜欢单个返回点,但是这很重要): // primarily by name, secondarily by value; null-safe; case-insensitive public int compareTo(Metadata other) { if (this.name == null && other.name != null){ return …

21
compareTo()与equals()
String在Java中测试的相等性时,我一直使用,equals()因为对我而言,这似乎是最自然的方法。毕竟,它的名字已经说明了它打算做什么。但是,我的一位同事最近告诉我,有人教我使用compareTo() == 0代替equals()。这对我来说感觉很不自然(这compareTo()是为了提供顺序而不是为了比较而不是比较平等),甚至有些危险(因为compareTo() == 0不一定在所有情况下都意味着平等,即使我知道这样做对于String)。 他不知道为什么要教他compareTo()代替equals()for 来使用String,我也找不到任何原因。这真的是个人喜好问题,还是使用这两种方法的真正原因?
118 java  string  equals  compareto 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.