1. 程式人生 > >Java Array和大數據運算

Java Array和大數據運算

++ str1 info div earch img string tro 數組

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

}

Java Array和大數據運算