zoukankan      html  css  js  c++  java
  • effective java——12考虑实现coparable接口

     float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。

    package com.jqf.www;
    
    import java.math.BigDecimal;
    
    public class test3 {
            public static void main(String[] args) {
                System.out.println(0.2+0.1);//s输出结果有误 false
                BigDecimal a=new BigDecimal("0.2");
                BigDecimal b=new BigDecimal("0.1");
                System.out.println(a.add(b));//true
                float d=(float) 0.1;
                float c=(float) 0.2;
                System.out.println(d+c);//true
                int dd=1;
                int tt=2;
                System.out.println(tt+dd);//true
                
                double d2=0.2;
                double d3=0.1;
                System.out.println(d2+d3
                        );//false
            
                
            }
    }

      于Comparable接口其中只有一个方法——compareTo。此方法和equals有类似之处,不过它所表达的含义相比equals要更多。equals通常是比较两个值是否相等,相等返回true,不相等返回false。compareTo则约定为第1对象若“大于”第2个对象则返回整数,“等于”则返回0,“小于”则返回负数,compareTo能约定更为复杂的“比较”,例如比较两个字符串进行字典序的比较,str = “abc”, str2 = “abd”,str.equals(str2)返回false,而str.compareTo(str2)则返回正数。compareTo与equals一样同样需要遵守自反性、对称性、传递性。同样有一个强烈的建议就是compareTo应该返回和equals方法相同的结果,但如果不一致,也不是不可以,就是最好能在注释中写明两个方法返回的结果不同。

    public class WorldList {
            public static void main(String[] args) {
                Set<String> s=new TreeSet<String>();
                s.add("b");
                s.add("a");
                Collections.addAll(s,args);
                System.out.println(s);//[a, b]
                
            }
    }
    public class compareTest  {
           public static void main(String[] args) {
             
               Integer a=1;
               Integer b=2;
               System.out.println(a.compareTo(b));
               
        }
    
    
    
    }
  • 相关阅读:
    Robotium源码分析之Instrumentation进阶
    路飞学城Python-Day115
    路飞学城Python-Day114
    路飞学城Python-Day113
    【逻辑回归的特征筛选方法】
    路飞学城Python-Day108
    路飞学城Python-Day107
    【算法学习】神经网络
    路飞学城Python-Day100
    路飞学城Python-Day101
  • 原文地址:https://www.cnblogs.com/gaoqiaoliangjie/p/10121947.html
Copyright © 2011-2022 走看看