一、Arrays
Arrays主要对数组提供了一些高效的操作,比如排序,查找,填充,拷贝相等判断等等。
1、排序
2、查找
Arrays.binarySearch 方法主要用于快速从数组中查找出对应的值
1. 如果被搜索的数组是无序的,一定要先排序,否则二分搜索很有可能搜索不到,我们 demo
里面也先对数组进行了排序;
2. 搜索方法返回的是数组的下标值。如果搜索不到,返回的下标值就会是负数,这时我们需要
判断一下正负。如果是负数,还从数组中获取数据的话,会报数组越界的错误
3、拷贝
拷贝整个数组我们可以使用 copyOf 方法,拷贝部分我们可以使用 copyOfRange 方法
二、Collections
collections是为了方便使用集合而产生的工具类,Arrays方便数组使用,Collections是方便集合使用。也提供了sort和binarySearch方法。
1、求集合中最大、小值
2、多种类型的集合
Collections对原始集合类进行了封装,提供了更好的集合类给我们,一种是线程安全的集合; 一种是不可变集合。
线程安全集合的集合方法都是在synchronized打头的
不可以变集合为只开放了查询方法,其余任何修改操作都会抛出异常
三、Object
对于 Objects,我们经常使用的就是两个场景,相等判断和判空。
1、相等判断
Objects提供了equals 和 deepEquals两个方法来进行相等判断,前者是判断基本类型和自定义类的,后者是用来判断数组的。
2、判断空
Objects提供了各种关于空的一些判断,isNull和nonNull对于对象是否为空返回Boolean值,requireNonNull方法更加严格,一旦为空就直接抛出异常。