6、Arrays类()

  本篇文章为你整理了6、Arrays类()的详细内容,包含有 6、Arrays类,希望能帮助你了解 6、Arrays类。

  toString 返回数组的字符串形式 Arrays.toString(arr)

  

Integer[] integers = {1, 20, 90};

 

  System.out.println(Arrays.toString(integers)); //[1, 20, 90]

  

 

  


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

 

  //1. 因为数组是引用类型,所以通过sort排序后,会直接影响到 实参 arr

  //2. sort重载的,也可以通过传入一个接口 Comparator 实现定制排序

  //3. 调用 定制排序 时,传入两个参数 (1) 排序的数组arr

  // (2) 实现了Comparator接口的匿名内部类,要求实现 compare方法

  //4. 这里体现了接口编程的方式,看看源码,就明白

  // 源码分析

  // (1) Arrays.sort(arr, new Comparator()

  // (2) 最终到 TimSort类 private static T void binarySort(T[] a, int lo, int hi, int start,

  // Comparator ? super T c)

  // (3) 执行到 binarySort 方法的代码,会根据动态绑定机制 c.compare()执行我们传入的

  // 匿名内部类的 compare()

  // while (left right) {

  // int mid = (left + right)

  // if (c.compare(pivot, a[mid]) 0)

  // right = mid;

  // else

  // left = mid + 1;

  // (4) new Comparator() {

  // @Override

  // public int compare(Object o1, Object o2) {

  // Integer i1 = (Integer)o1;

  // Integer i2 = (Integer)o2;

  // return i2 - i1;

  // (5) public int compare(Object o1, Object o2) 返回的值 0 还是 0

  // 会影响整个排序结果

  //Arrays.sort(arr); // 默认排序

  //定制排序

  Arrays.sort(arr, new Comparator() {

   @Override

   public int compare(Object o1, Object o2) {

   Integer i1 = (Integer)o1;

   Integer i2 = (Integer)o2;

   return i1 - i2;

  System.out.println(Arrays.toString(arr));//[-1, 0, 1, 7, 89]

  

 

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

  

//1. 要求该数组是有序的,如果该数组是无序的,不能使用binarySearch

 

  //2. 如果数组中不存在该元素,就返回 return -(low + 1); low是如果存在,它应该在的位置

  Integer[] arr = {1, 2, 90, 123, 567};

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

  System.out.println("index=" + index);

  

 

  
copyOf 数组元素的复制

  

//1. 从 arr 数组中,拷贝 arr.length 个元素到 newArr数组中

 

  //2. 如果拷贝的长度 arr.length 就在新数组的后面 增加 null

  //3. 如果拷贝长度 0 就抛出异常NegativeArraySizeException

  //4. 该方法的底层使用的是 System.arraycopy()

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

  

 

  


//1. 使用 99 去填充 num数组,可以理解成是替换原来的元素

 

  Integer[] num = new Integer[]{9, 3, 2};

  Arrays.fill(num,99);

  System.out.println(Arrays.toString(num)); //[99, 99, 99]

  

 

  
equals 比较两个元素内容是否完全一致

  

//1. 如果arr 和 arr2 数组的元素一样,则方法返回true

 

  //2. 如果不是完全一样,就返回false

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

  System.out.println("equals=" + equals); //equals=true

  

 

  
asList 将一组值,转换成list

  

//1. asList方法,会将(2,3,4,5,6,1)数据转成一个List集合

 

  //2. 返回的 asList 编译类型 List(接口)

  //3. asList 运行类型 java.util.Arrays#ArrayList

  List asList = Arrays.asList(2,3,4,5,6,1);

  System.out.println("asList=" + asList);

  System.out.println("asList的运行类型" + asList.getClass());

  

 

  以上就是6、Arrays类()的详细内容,想要了解更多 6、Arrays类的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: