Java核心技术 卷一 笔记三 大数值及数组

BigInteger类实现了任意精度的整数运算

BigDecimal类实现了任意精度的浮点数运算

使用静态的valueOf方法可以将普通的数值转换为大数值

Java提供不同的数组类 不同类中的方法同样不同

1. Array

  Array和[]的关系就如int 和Integer, boolean 和Boolean. 它的构造函数是私有的,赋值提供静态的诸如 setInt(Object arr, int index, int i)  setFloat(Object arr, int index, float f)  set(Object arr, int index, Object value)之类的方法, 取值提供静态的 getInt(Object arr, int index)   get(Object arr, int index) 之类 的方法. 在JDK1.6的源码中, 这些方法都是由本地代码实现。由于没有找到本地代码,不能深入的学习, 查看android4.2的源码,这些方法并没有用本地代码实现,直接根据实际的类型,分配数组。

2. Arrays

  Arrays主要提供toString(), 排序, 二分查找, copyOf()等方法. 同样构造方法是私有的, toString() 排序 查找和 copyOf()等方法也是静态的,其中对于乱序的基本类型数据用到的是双枢纽快速排序算法(DualPivotQuicksort),对于乱序的Object[] 用的是归并排序(不过,注释中指出归并排序是历史遗留问题,将来的发行版会删去。下一篇,我想对常用的排序算法做个笔记)。copyOf()会分配临时数组,最终会调用System.arraycopy()来完成数组元素的拷贝。

例如数组的排序就应该使用Arrays类 配合类中的sort方法实现排序

Arrays.sort(数组名);

for(int r:数组名) 

 system.out .print(r);

原文地址:https://www.cnblogs.com/zeross/p/6622680.html