大数值
如果基本的证书和浮点数不能满足需要,可以使用java.math包中的两个类BigInteger和BigDecimal。这两个类可以出来包含任意长度数字序列的数值。BigInteger实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。
使用静态方法valueOf方法可以将普通的数值转换为大数值
BigInteger bi = BigInteger.value(..);
大数值不能使用普通的加减乘除,需要使用类中的方法进行运算
BigInteger a = BigInteger.valueOf(100); BigInteger b = BigInteger.valueOf(200); BigInteger c = a.add(b); //加法 BigInteger d = a.multiply(b); //乘法
数组
数组是一种数据结构,用来存储统一类型值的集合
定义数组: int[] i; //习惯使用这种 int i[];
for each循环
for(variable : colletion){ //statement }
数组初始化以及匿名数组
//初始化 int[] arrayTest2 = {1, 2, 3, 4}; //初始化匿名数组 new int[]{...}
允许创建一个长度为0的数组,数组长度为0与null不同。
将一个数组变量拷贝给另一个变量,两个变量将引用统一数组
public class ArrayTest1{ public static void main(String[] args){ int[] a = {1, 3, 4, 6}; int[] b = a; for(int c : a){ System.out.println("数组a: " + c); } for(int c : b){ System.out.println("数组b: " + c); } System.out.println("--------------"); //两个变量引用的是同一个数组,其中一个变量去改变数组的结果 //另一个变量引用到的就是改变了的结果 b[1] = 233; //a[1]和b[1]的值都为233,引用的是同一数组 for(int c : a){ System.out.println("数组a: " + c); } for(int c : b){ System.out.println("数组b: " + c); } } }
将一个数字中所有的值拷贝给另一个数组
import java.util.Arrays; public class ArrayTest1{ public static void main(String[] args){ int[] a = {1, 3, 4, 6}; //拷贝数组的所有值到另一个数组 int[] b = Arrays.copyOf(a, 4); for(int c : a){ System.out.println("数组a: " + c); } for(int c : b){ System.out.println("数组b: " + c); } System.out.println("--------------"); b[1] = 233; //b[1]的值改变了不影响a[1]的值,两个不属同一数组。 for(int c : a){ System.out.println("数组a: " + c); } for(int c : b){ System.out.println("数组b: " + c); } } }
数组元素是数值型,那么多余的元素被赋值为0;数组元素布尔型,赋值为false;如果长度小于原始数组长度,则只拷贝前面的元素。
如果要对数组元素进行排序,使用Arrays类中的sort方法
import java.util.Arrays; public class ArrayTest1{ public static void main(String[] args){ int[] a = {11, 34, 443, 123, 421}; //排序 Arrays.sort(a); for(int c : a){ System.out.println("数组a: " + c); } } }
输出数组的三种方法:
import java.util.Arrays; public class ArrayTest1{ public static void main(String[] args){ int[] a = {11, 34, 443, 123, 421}; //for循环 System.out.println("for循环"); for(int c : a){ System.out.println( c); } System.out.println("for迭代"); for(int i = 0; i < a.length; i++){ System.out.println(a[i]); } System.out.println("Arrays.toString(a)方法"); System.out.println(Arrays.toString(a)); } }