• Java Array和大数据运算


    1、Array类

     

    sort方法,用来对指定数组中的元素进行排序(元素值从小到大进行排序)
    //源arr数组元素{1,5,9,3,7}, 进行排序后arr数组元素为{1,3,5,7,9}
    int[] arr = {1,5,9,3,7};
    Arrays.sort( arr );
    
    toString方法,用来返回指定数组元素内容的字符串形式 int[] arr = {1,5,9,3,7}; String str = Arrays.toString(arr); // str的值为[1, 3, 5, 7, 9]
    binarySearch方法,在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-1。要求该数组必须是个有序的数组。 int[] arr = {1,3,4,5,6}; int index = Arrays.binarySearch(arr, 4); //index的值为2 int index2= Arrasy.binarySearch(arr, 2); //index2的值为-1
    import java.util.Arrays;
    
    public class Demo01 {
    
        public static void main(String[] args) {
            /*int[] arr=null;
            int[] arr1={};
            System.out.println(arr.length);//空,会报错
            System.out.println(arr1.length);*/
            int[] arr={3,6,9,11,33,66};
            int index=Arrays.binarySearch(arr, 6);//前提是:数组是升序排列
            System.out.println(index);//返回的是下标
            int index2=Arrays.binarySearch(arr, 20);
            System.out.println(index2);//20在数组中不存在,返回的是该值在数组中应该在的负-下标-1
            int[] arr1={5,9,1,2,77,66,33,22,11,77};
            Arrays.sort(arr1);//生序排序
            for(int i=0;i<arr1.length;i++){
                System.out.print(arr1[i]+" ");
            }
            System.out.println(Arrays.toString(arr1));
        }
    }

    2、大数据运算

     BigInteger: java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符

    import java.math.BigInteger;
    
    public class Demo02 {
    
        public static void main(String[] args) {
            String str="10000000000000000000000000000000000000000000";
            String str1="20000000000000000000000000000000000000000000";
            BigInteger in1=new BigInteger(str);
            BigInteger in2=new BigInteger(str1);
            System.out.println(in1.add(in2));
            System.out.println(in1.subtract(in2));
            System.out.println(in1.multiply(in2));
            System.out.println(in1.divide(in2));
        }
    
    }

     BigDecimal:double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算

    package demo01;
    
    import java.math.BigDecimal;
    
    public class Demo03 {
    
        public static void main(String[] args) {
             System.out.println(0.09 + 0.01);
             System.out.println(1.0 - 0.32);
             System.out.println(1.015 * 100);
             System.out.println(1.301 / 100);
             
             BigDecimal b1=new BigDecimal("0.09");
             BigDecimal b2=new BigDecimal("0.01");
             System.out.println(b1.add(b2));
             
             BigDecimal b3=new BigDecimal("1.0");
             BigDecimal b4=new BigDecimal("0.32");
             System.out.println(b3.add(b4));
             
             BigDecimal b5=new BigDecimal("1.015");
             BigDecimal b6=new BigDecimal("100");
             System.out.println(b5.multiply(b6));//乘
            
             BigDecimal b7=new BigDecimal("1.301");
             BigDecimal b8=new BigDecimal("100");
             System.out.println(b7.divide(b8));//乘
             
             
        }
    
    }
  • 相关阅读:
    和远哥一起了解Hadoop的MapReduce是如何运行的
    远哥跟你说 Spring的 classpath 通配符加载配置文件
    远哥Amoeba源码分析之:核心类说明
    远哥推荐:面向网络的数据库 Neo4j
    Hadoop 1.0.3 在CentOS 6.2上安装过程 [个人安装通过的全程记录]
    OpenShift 添加 URL Rewrite 重写支持
    Access中空值处理
    解决EOS启动“不能连接到Server”的问题
    [原创]用递归写的一个object 转换成JSON的函数
    JSON反序列的问题原因查找
  • 原文地址:https://www.cnblogs.com/cgj1994/p/10003980.html
Copyright © 2020-2023  润新知