Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索).

常用方法

  1. toString返回数组的字符串形式

    Arrays.toString(arr)

  2. sort 排序(自然排序和定制排序)

    Integer arr[ = {1, -1, 7,0,89};

  3. binarySearch通过二分搜索法进行查找,要求必须排好序

    int index = Arrays.binarySearch(arr,3);

  4. copyOf 数组元素的复制

    lnteger[] newArr = Arrays.copyOf(arr, arr.length);

  5. fill 数组元素的填充

    Integer[] num = new Integer[]{9.3,2Arrays.fill(num, 99);

  6. equals 比较两个数组元素内容是否完全一致

    boolean equals = Arrays.equals(arr, arr2);

  7. asList将一组值,转换成list

    List asList = Arrays.asList(2,3,4.5,6,1); System.out.println(“asList=” + asList);

  1. package test;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. public class Main {
  5. public static void main(String[] args) {
  6. Integer[] arr = {1, 2, 90, 123, 567};
  7. // binarySearch 通过二分搜索法进行查找,要求必须排好
  8. //1. 使用 binarySearch 二叉查找
  9. //2. 要求该数组是有序的. 如果该数组是无序的,不能使用binarySearch
  10. //3. 如果数组中不存在该元素,就返回 return -(low + 1); // key not found.
  11. //low表示该数字应该存在的位置
  12. int index1 = Arrays.binarySearch(arr, 567);//返回该数字的索引
  13. System.out.println("index=" + index1);
  14. int index2 = Arrays.binarySearch(arr, 92);//返回该数字的索引
  15. System.out.println("index=" + index2);//-(3 + 1) = -4
  16. //copyOf 数组元素的复制
  17. //1. 从 arr 数组中,拷贝 arr.length个元素到 newArr数组中
  18. //2. 如果拷贝的长度 > arr.length 就在新数组的后面 增加 null
  19. //3. 如果拷贝长度 < 0 就抛出异常NegativeArraySizeException
  20. //4. 该方法的底层使用的是 System.arraycopy()
  21. Integer[] newArr = Arrays.copyOf(arr, arr.length);
  22. System.out.println("==拷贝执行完毕后==");
  23. System.out.println(Arrays.toString(newArr));
  24. //ill 数组元素的填充
  25. Integer[] num = new Integer[]{9,3,2};
  26. //1. 使用 99 去填充 num数组,可以理解成是替换原来的元素
  27. Arrays.fill(num, 99);
  28. System.out.println("==num数组填充后==");
  29. System.out.println(Arrays.toString(num));
  30. //equals 比较两个数组元素内容是否完全一致
  31. Integer[] arr2 = {1, 2, 90, 123};
  32. //1. 如果arr 和 arr2 数组的元素一样,则方法true;
  33. //2. 如果不是完全一样,就返回 false
  34. boolean equals = Arrays.equals(arr, arr2);
  35. System.out.println("equals=" + equals);
  36. //asList 将一组值,转换成list
  37. //1. asList方法,会将 (2,3,4,5,6,1)数据转成一个List集合
  38. //2. 返回的 asList 编译类型 List(接口)
  39. //3. asList 运行类型 java.util.Arrays#ArrayList, 是Arrays类的
  40. // 静态内部类 private static class ArrayList<E> extends AbstractList<E>
  41. // implements RandomAccess, java.io.Serializable
  42. List asList = Arrays.asList(2,3,4,5,6,1);
  43. System.out.println("asList = " + asList);
  44. System.out.println("asList的运行类型" + asList.getClass());
  45. }
  46. }

image.png