public static void main(String[] args) {
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("1.00");
Set<BigDecimal> hs = new HashSet<>();
hs.add(a);
hs.add(b);
System.out.println(hs.size()); // 2
Set<BigDecimal> ts = new TreeSet<>();
ts.add(a);
ts.add(b);
System.out.println(ts.size()); // 1
}
public int compareTo(PhoneNumber pn){
int result = Short.compare(areaCode, pn.areaCode);
if(result == 0){
result = Short.compare(prefix, pn.prefix);
if(result == 0){
result = Short.compare(lineNum, pn.lineNum);
}
}
return result;
}
private static final Comparator<PhoneNumber> COMPARATOR = Comparator.comparingInt((PhoneNumber pn) -> pn.areaCode).thenComparingInt(pn -> pn.lineNum).thenComparingInt(pn -> pn.prefix);
public int compareTo(PhoneNumber pn){
return COMPARATOR.compare(this, pn);
}
static Comparator<Object> hashCodeOrder = new Comparator<>() {
public int compare(Object o1, Object o2) {
return o1.hashCode() - o2.hashCode();
}
};
static Comparator<Object> hashCodeOrder = new Comparator<>() {
public int compare(Object o1, Object o2){
return Integer.compare(o1.hashCode(), o2.hashCode());
}
}