????????Object???е?equals()??????Comparable????е?compareTo()????????к?????????????????????????java.net???????????????????????????????????????

????????equals()??Comparable????е?compareTo()??????Java?л?????????????????????????????Χ????"????????"??????????

????equals()????

????Java?е?equals()??????????????????Java???????????????????????equals()???????????????????equals()??????????????????????????????μ?????????null???á?

???????equals()????????????????Javadoc??????÷??????????????????"????"????????????"????"??????????е????????????????ж????????ж???????????

????·??????????(==)?????????Object??

????·????????????????????磬???????????????????????????????????????????????????????????

????·????????е??Щ???????ID????ü????????????????????????????

????compareTo()????

????Comparable????????????????Javadoc???compareTo()????"????趨??????????y????????????????"??

?????????Comparable??????????????????????????洢????????????????Comparator??????£???????TreeSet??TreeMap????????????

?????y??????????????????????????????????????????equals()??????????

?????????/??????????

????Comparable???????????????

??????C???????????ζ?????equals()??????????£???е??????e1.compareTo(e2) == 0??e1.equals(e2)?????????????

??????????????????compareTo()????????????equals()?????????????????????????(?????null?????)?????????????????????????????臨????????潫?????????

?????????????????????????????????????á?????????????????Java????????????????У?==????????????????????????????????б???????/С????????????????????????????????????Java?????д???/С????????????compareTo()????????==???????equals()??????

    // our new Java-like language
    if (a < b) return "Less";      // translation ignoring nulls: if (a.compareTo(b) < 0)
    if (a > b) return "Greater";   // translation ignoring nulls: if (a.compareTo(b) > 0)
    if (a == b) return "Equal";    // translation ignoring nulls: if (a.equals(b))
    throw new Exception("Impossible assuming no nulls?");

?????????compareTo()????????“????????”???????????????????????????a.equals(b)?false???a.compareTo(b)????0??

????????????TreeMap???л?????????????

    // Foo class is "inconsistent with equals"
    assert foo1.equals(foo2) == false; 
    assert foo1.compareTo(foo2) == 0; 
      
    TreeMap<Foo?? String> map =  
    map.put(foo1?? "a"); 
    map.put(foo2?? "b");

?????????equals()??????????????????????????compareTo()??????????????????????£???Map???????????1??????0??

??????????Щ“????????”??????Javadoc???“??????(??????????)?????????????equals()???????????”??

????JDK?е????????????“????????”????淶???????Comparable??????Щ?????Byte??Short??Integer??Long??Character??String??

????????Щ?????????

????BigDecimal--?????“??????????”??????4.00??4.0????£??????б????????????????????