4.19Java.util.Arrays类

4.19Java.util.Arrays类

JDK提供的工具类

Arrays类包含的内容

  • 排序

  • 查找

  • 填充

  • 打印内容

  • ...


打印内容
package com.array;

import java.util.Arrays;

/**
* 测试Java.util.Arrays工具类的使用
* @author Lucifer
*/
public class TestArrays {
   public static void main(String[] args) {

       int[] a = {10,20,30};

       System.out.println(a); //返回的是哈希码---地址的编码

       System.out.println(Arrays.toString(a)); //返回数组内容,而且和之前的Object.toString是两码事,Arrays.toString是静态的方法,帮助我们打印处内容---源码
  }
}
排序---方法:Arrays.sort();
package com.array;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
* 测试Java.util.Arrays工具类的使用
* @author Lucifer
*/
public class TestArrays {
   public static void main(String[] args) {
       
       /*Arrays排序方法*/
       //冒泡排序????直接上方法
       int[] b = {99,88,100,200,3291,485};

       Arrays.sort(b);

       System.out.println(Arrays.toString(b));
  }
}

数组元素是引用类型的排序(Comparable接口的应用)---用到排序需要实现到Comparable接口

自定义类,根据年龄排序

package com.array;

import java.util.Arrays;

/**
* 测试数组元素引用数据类型的排序(涉及到实现的接口)
* @author Lucifer
*/
public class TestArraysInterface {
   public static void main(String[] args) {

  }
}

/*定义数组元素类*/
class Man implements Comparable{
   int age;
   int id;
   String name;

   /*类的构造器*/
   public Man(int age, String name){
       super();
       this.age = age;
       this.name = name;
  }

   /*toString方法*/
   public String toString(){
       return this.name;
  }
   /*
   这个是Object类里面的toString方法,说明Object实现了Comparable接口
    */

   /**
    * 重写接口的抽象方法
    * @param o
    * @return
    */
   @Override
   public int compareTo(Object o){
       Man man = (Man) o; //强制转型,目标对象
       if (this.age < man.age){
           return -1;
      }

       if (this.age > man.age){
           return 1;
      }

       return 0;
  }
}

容器章节会详细说明

查找---二分法查找
package com.array;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
* 测试Java.util.Arrays工具类的使用
* @author Lucifer
*/
public class TestArrays {
   public static void main(String[] args) {

       /*Arrays打印内容方法*/
       int[] a = {10,20,30};

       System.out.println(a); //返回的是哈希码---地址的编码

       System.out.println(Arrays.toString(a)); //返回数组内容,而且和之前的Object.toString是两码事,Arrays.toString是静态的方法,帮助我们打印处内容---源码

       /*Arrays排序方法*/
       //冒泡排序????直接上方法
       int[] b = {99,88,100,200,3291,485};

       Arrays.sort(b);

       System.out.println(Arrays.toString(b));

       /*Arrays二分法查找*/
       //方法---binarySearch
       System.out.println(Arrays.binarySearch(a,30));
       /*
       查询a数组里面的30这个数在哪个索引位置
        */

       //如果查询的元素不在返回-1
       System.out.println(Arrays.binarySearch(a,-30));
  }
}

 

It's a lonely road!!!
原文地址:https://www.cnblogs.com/JunkingBoy/p/14678605.html