Java的Arrays类
常用方法
- Arrays.toString方法, 直接显示信息
- sort排序, 自然排序和定制排序 Integer arr[] = {1, -1, 7, 0, 89};
- 可以使用Comparator接口实现定制排序Arrays.sort()
- 最终到了TimSort类的binarySort() 中,
- 执行到binary Sort()方法的代码, 根据动态绑定机制, 执行我们传入的匿名内部类的 compare() 方法
Arrays模拟排序
package com.zhx.arrays_;
import java.util.Arrays;
import java.util.Comparator;
/**
* @author 朱洪曦
* @version 1.0
*/
public class ArraysSortCustom {
public static void main(String[] args) {
int[] arr = {5, 3, 2, 6, 1, 7, 10};
bubble02(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i1 - i2;
}
});
System.out.println(Arrays.toString(arr));
}
public static void bubble01(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = arr.length - 1; j > i; j--) {
if (arr[j - 1] > arr[j]) {
int tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
}
public static void bubble02(int[] arr, Comparator c) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = arr.length - 1; j > i; j--) {
if (c.compare(arr[j - 1], arr[j]) > 0) {
int tmp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = tmp;
}
}
}
}
}
Arrays的其它方法
- Arrays.binarySearch(arr, 3);
- Arrays.copyOf(arr, arr.length); 如果长度超出, 那么就会添加null进去
- 数组填充 Arrays.fill(arr, num); 用后面指定的数, 替换arr的所有元素
- equals 比较两个数组元素是否完全一致
- asList将数组转成一个List
System类
常用方法
- exit退出当前程序 exit(0)表示程序退出的状态, 0表示的是正常状态
- arraycopy: 复制数组元素, 比较适合底层掉哟个还能
- currentTimeMillens: 返回当前时间距 … 的毫秒数
- gc: 运行垃圾回收机制
BigInteger和BigDecimal
常用方法
两个对象都要时BigInteger, 使用字符串来构建
- add bigInteger.add(bigInteger1)
- substract
- multiply
- divide
保存精度很高的小数时, 使用BigDecimal
加减乘除
- add bigInteger.add(bigInteger1)
- substract
- multiply
- divide除法有可能除不尽, 后面指定精度, BigDecimal.ROUND_CEILING