java的 Arrays类和大数据运算
2021-06-16 00:05
标签:pac 数组元素 tip color 解决 lin 指针 poi array 1、Arrays类: int[] arr=null;和 int[] arr1 = {};不一样 arr 是地址为空 ; arr1 是 数组为空; 效果如下: 如果数组为空,则返回-1; sort方法: 效果如下: 效果如下: 效果如下: 效果如下: 但是可能出现无限不循环小数,因此需要对所需要 效果如下:这里向上取整 java的 Arrays类和大数据运算 标签:pac 数组元素 tip color 解决 lin 指针 poi array 原文地址:https://www.cnblogs.com/scw123/p/9728811.html
(1)空指针异常:NullPointerException;package com.oracle.demo01;
import java.util.Arrays;
public class demo01 {
public static void main(String[] args) {
int[] arr1 = null;
int[] arr2 = {};
System.out.println(arr2.length);
System.out.println(arr1.length); 空指针异常
}
}
(2)binarySearch方法:
传入有序数组和元素,返回所在下标;
如果元素不在数组中,返回其应在位置的-(负号)下标减一;
用来对指定数组中的元素进行排序(元素值从小到大进行排序);package com.oracle.demo01;
import java.util.Arrays;
public class demo01 {
public static void main(String[] args) {
//前提:数组必须是有序的;
//空数组
int[] arr = {};
int index =Arrays.binarySearch(arr, 6);
System.out.println(index);
//元素在数组中
int[] arr1 = {1,2,4,5,6,7};
int index1 =Arrays.binarySearch(arr1, 6);
System.out.println(index1);
//元素不在数组中
int[] arr2 = {1,2,4,5,6,7};
int index2 =Arrays.binarySearch(arr2, 3);
System.out.println(index2);
int[] arr3 = {5,9,0,1,8,6,4};
Arrays.sort(arr3);
for(int i = 0;i ){
System.out.print(arr3[i]+",");
}
}
}
toString方法:用来返回指定数组元素内容的字符串形式;package com.oracle.demo01;
import java.util.Arrays;
public class demo01 {
public static void main(String[] args) { int[] arr3 = {5,9,0,1,8,6,4};
System.out.println(Arrays.toString(arr3));
}
}
2、大数据运算:
(1)BigInteger:超过long之后将其封装成BigInteger对象
对象不能直接进行运算,所以BigInteger对象用
add、subtract、multiply、divide方法进行运算;package com.oracle.demo01;
import java.math.BigInteger;
public class demo02 {
public static void main(String[] args) {
String str1 = "10000000000000000000000000000";
String str2 = "20000000000000000000000000000";
BigInteger in1 = new BigInteger(str1);
BigInteger in2 = new BigInteger(str2);
//+
System.out.println(in1.add(in2));
//-
System.out.println(in1.subtract(in2));
//*
System.out.println(in1.multiply(in2));
// /
System.out.println(in2.divide(in1));
}
}
(2)BigDecimal:用来解决浮点型运算出现精度丢失情况;
对象不能直接进行运算,所以BigDecimal对象用
add、subtract、multiply、divide方法进行运算;package com.oracle.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
BigDecimal a1 = new BigDecimal("0.09");
BigDecimal a2 = new BigDecimal("0.01");
System.out.println(a1.add(a2));
BigDecimal b1 = new BigDecimal("1.0");
BigDecimal b2 = new BigDecimal("0.32");
System.out.println(b1.subtract(b2));
BigDecimal c1 = new BigDecimal("1.015");
BigDecimal c2 = new BigDecimal("100");
System.out.println(c1.multiply(c2));
BigDecimal d1 = new BigDecimal("1.301");
BigDecimal d2 = new BigDecimal("100");
System.out.println(d1.divide(d2));
}
}
的位数进行保留和选择舍入模式;
【标度[小数的位数]和舍入模式】package com.oracle.demo01;
import java.math.BigDecimal;
public class demo04 {
public static void main(String[] args) {
BigDecimal d1 = new BigDecimal("1.301");
BigDecimal d2 = new BigDecimal("100");
System.out.println(d1.divide(d2));
//标度和舍入模式
System.out.println(d1.divide(d2, 3, BigDecimal.ROUND_CEILING));
}
}