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));//乘
         
         
    }

}
原文地址:https://www.cnblogs.com/cgj1994/p/10003980.html