java中数组工具类Arrays

import java.util.Arrays;

public class ArraysStu {
 /*Arrays:封装了很多对于数组进行排序,查询等处理方法的工具类
  *api:
  *1.binarySearch(byte[] a, int fromIndex, int toIndex, byte key):在指定范围搜索元素,返回索引
  *2.copyOf(原数组,长度);复制指定数组的指定长度,并返回
  *3.copyOfRange(boolean[] original, int from, int to):复制指定范围的原数组,返回,前闭后开
  *4.arraycopy(Object src, int srcPos, Object dest, int destPos, int length):复制
  *src:原数组
  *srcPos:从原数组复制的开始位置
  *dest:目标数组
  *destPos:目标数组粘贴的起始位置
  *length:复制的长度
  *5.equals:比较数组的内容
  *6.fill(boolean[] a, boolean val):填充数组的元素
  *7.hashCode():返回跟数组内容相关的hashcode
  *8.sort():升序排列
  */
 static int[] arr = {1,2,3,4,5,6,7,8,90};
 public static void main(String[] args)
 {
  demo7();
 }
 //引用类型2分查找
 public static void demo1(){
  Person[] arr = new Person[5];
  for (int i = 0; i < arr.length; i++)
  {
   arr[i] = new Person("p"+i,i+10,i+10);
  }
  //System.out.println(arr[0]<arr[1]);
  int index = BinarySearch.binarySearch(arr,new Person("p0",13,13));
  System.out.println(arr[index]);
 }
 //copyOf
 public static void demo2(){
  int[] arr1 = Arrays.copyOf(arr,5);
  System.out.println(Arrays.toString(arr1));
 }
 //copyOfRange
 public static void demo3(){
  int[] arr1 = Arrays.copyOfRange(arr, 2, 5);
  System.out.println(Arrays.toString(arr1));
 }
 //arrayCopy
 public static void demo4(){
  int[] arr1 = new int[5];
  System.arraycopy(arr, 2,arr1,0,5);//注意下标越界
  System.out.println(Arrays.toString(arr1));
 }
 public static void demo5(){
  int[] arr1 = Arrays.copyOf(arr, arr.length);
  System.out.println(arr.equals(arr1));
  System.out.println(Arrays.equals(arr, arr1));
  int[][] arr2 = {arr,arr1};
  int[][] arr3 = {arr1,arr};
  System.out.println(Arrays.equals(arr2, arr3));//处理一维数组
  System.out.println(Arrays.deepEquals(arr2, arr3));//处理多维数组
  System.out.println(Arrays.deepToString(arr2));
  System.out.println(Arrays.toString(arr2));
  System.out.println(Arrays.hashCode(arr1));
  System.out.println(Arrays.hashCode(arr));
  System.out.println(arr1.hashCode());
  System.out.println(arr.hashCode());
 }
 public static void demo6(){
  Arrays.fill(arr,2,5,999);
  System.out.println(Arrays.toString(arr));
 }
 //排序
 public static void demo7(){
  Person[] arr = new Person[5];
  for (int i = 0; i < arr.length; i++)
  {
   int age = (int)(Math.random()*(15-12+1))+12;
   int salary = (int)(Math.random()*(500-200+1))+200;
   arr[i] = new Person("p"+i,age,salary);
  }
  System.out.println(Arrays.toString(arr));
  Arrays.sort(arr);
  System.out.println(Arrays.toString(arr));
 }
}

猜你喜欢

转载自blog.csdn.net/wanghuiwei888/article/details/78848778