Arrays
- 封装了一些用来操作数组的常用功能
- 如何使用Arrays类
import java.util.Arrays;
public class ArrayDemo03{
public static void main(String[] args){
//定义两个数组
int[] arr1={5,2,6,4,1,3,7};
int[] arr2={1,2,3,4,5,6,7};
System.out.println(arr1);
System.out.println(arr2);
//需求:想要在打印数组名的时候,可以给打印数组中的所有内容
//static String toString(int[] a) 返回指定数组内容的字符串表示形式。
System.out.println(Arrays.toString(arr1));
//比较两个数组中所有的数据是否相同
//static boolean equals(int[] a, int[] a2) 如果两个指定的 int 型数组彼此相等,则返回 true。
System.out.println(arr1==arr2);
System.out.println(Arrays.equals(arr1,arr2));
//排序: static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序
System.out.println(Arrays.toString(arr1));
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));
//根据字符的unicode比较
String[] arr3=new String[]{"b","ab","a","bc","abc"};
System.out.println(Arrays.toString(arr3));
Arrays.sort(arr3);
System.out.println(Arrays.toString(arr3));
//二分查找法: 要求先升序排序再查找
//static int binarySearch(int[] a, int key) 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
System.out.println( Arrays.binarySearch(arr2,-2)); //-1
//static int[] copyOf(int[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
//如果新数组的长度比原数组长度小,是截取,比原数组长度大,是填充,使用默认值填充
System.out.println(Arrays.toString(Arrays.copyOf(arr2,10))); //默认从0开始
/*
static float[] copyOfRange(float[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。 结束位置不包含
*/
System.out.println(Arrays.toString(Arrays.copyOfRange(arr1,2,7)));
/*
static String deepToString(Object[] a)
返回指定数组“深层内容”的字符串表示形式。
static boolean deepEquals(Object[] a1, Object[] a2)
如果两个指定数组彼此是深层相等 的,则返回 true。
只对二维数组使用
*/
int[][] arr5={{9,8,7},{6,5},{4,3,2,1}};
int[][] arr6={{9,8,7},{6,5},{4,3,2,1}};
System.out.println(Arrays.toString(arr5));
System.out.println(Arrays.toString(arr6));
System.out.println(Arrays.deepToString(arr5));
System.out.println(Arrays.equals(arr5,arr6));
System.out.println(Arrays.deepEquals(arr5,arr6));
//static void fill(float[] a, int fromIndex, int toIndex, float val) 将指定的 float 值分配给指定 float 型数组指定范围中的每个元素。