Java中的Arrays类


正在更新中…

toString()

方法原型:

public static String toString(int[] a)
/*参数可以是byte,boolean,short,char,int,long,float,double,Object类型的数组,
上面只是一个例子

功能:将各类型的数组转换成String类型输出

 public static void main(String[] args) {
        int [] arr=new int[]{1,2,3,4,5,6,7,8,9};
        String str=Arrays.toString(arr);
        System.out.println(str);  //[1, 2, 3, 4, 5, 6, 7, 8, 9]
        System.out.println(arr);//[I@776ec8df
        System.out.println(arr.toString());//[I@776ec8df
        //arr.toString()方法打印数组的地址
    }

copyOf

方法原型:

public static int[] copyOf(int[] original,int newLength)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double,String类型的数组*/

功能:返回一个新的数组,数组长度为newLength,从源数组中复制newLength个元素到新数组,若是源数组的长度小于newLength,则会:
byte,short,int,long类型的数组则会补0,char类型的数组则会 ,
boolean类型的数组则会补false,float和double类型的数组则会补0.0,
String类型的数组则会补null

public static void main(String[] args) {
        int [] arr=new int[]{1,2,3,4,5,6,7,8,9};
        int [] a=Arrays.copyOf(arr,5);
        System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5]
    }

copyOfRange

方法原型:

public static int[] copyOfRange(int[] original,int fromIndex,int toIndex)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double,String类型的数组*/                            

功能:复制数组索引从fromIndex开始到toIndex(不包括toIndex)的元素并返回一个新数组.

public static void main(String[] args) {
        int [] arr=new int[]{1,2,3,4,5,6,7,8,9};
        int [] a=Arrays.copyOfRange(arr,3,6);
        System.out.println(Arrays.toString(a));//[4, 5, 6]
    }

sort

方法原型:

public static void sort(int[] a)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double类型的数组*/

功能:对数组所有元素进行排序(升序)

import java.util.Arrays;
import java.util.Random;
public class TestSort {
    public static void main(String[] args) {
      int [] arr=new int [10];
      Random rand=new Random();
      for(int i=0;i<arr.length;i++)
      {
          arr[i]=rand.nextInt(15);
      }
      System.out.println("排序前数组各元素:");
      System.out.println(Arrays.toString(arr));
      Arrays.sort(arr);
      System.out.println("排序后数组各元素:");
      System.out.println(Arrays.toString(arr));
    }
/*排序前数组各元素:
[5, 6, 12, 10, 14, 9, 1, 8, 0, 4]
排序后数组各元素:
[0, 1, 4, 5, 6, 8, 9, 10, 12, 14]*/

方法原型:

public static void sort(int[] a,int fromIndex,int toIndex)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double类型的数组*/

功能:对数组部分元素进行排序(升序),从元素下标fromIndex开始,到toIndex(不包括toIndex)

binarySearch

方法原型:

public static int binarySearch(int[] a,int key)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double类型的数组*/

功能:使用二分法查找,找到则返回key在数组中的索引位置,找不到则返回-1-插入点,若是key比数组中所有元素都小则返回-1,否则返回-插入点,插入点就是key在数组中应插入的索引位置+1
注意:数组必须是按从小到大的顺序排序的

public static void main(String[] args) {
       int [] arr=new int[]{5, 6, 12, 10, 14, 9, 1, 8, 0, 4};
       Arrays.sort(arr);
       int index=Arrays.binarySearch(arr,10);//7
       System.out.println(index);
    }
int[] arr=new int[]{3,47,1,21,15};
Arrays.sort(arr);
int index=Arrays.binarySearch(arr,34);
System.out.println(index);//-5

方法原型:

public static int binarySearch(int[] a,int fromIndex,int toIndex,int key)

功能:在指定的索引范围即[fromIndex,toIndex)内使用二分法查找.

fill

方法原型:

public static void fill(int[] a,int val)
/*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double,String类型的数组*/

功能:将a数组全部用val来填充

public static void fill(int[] a,int fromIndex,int toIndex,int val)

功能:将数组索引从fromIndex开始到toIndex(不包括toIndex)的元素用val来填充.

public static void main(String[] args) {
        int [] arr=new int[10];
        Arrays.fill(arr,2,6,6);
        System.out.println(Arrays.toString(arr));
        //[0, 0, 6, 6, 6, 6, 0, 0, 0, 0]
    }

equals

方法原型:

public static boolean equals(int[] a,int[] a2)
 /*除了可以是int类型的数组,还可以是
byte,boolean,short,char,long,float,double,String类型的数组*/                           

功能:全部元素比较,比较数组元素是否相等

public static boolean equals(int[] a,int aFromIndex,int aToIndex,int[] b, int bFromIndex, int bToIndex)                                                                                   

功能:部分元素比较,将a数组索引从aFromIndex开始到aToIndex(不包括aToIndex)的元素和b数组索引从bFromIndex开始到bToIndex(不包括bToIndex)的元素比较

public static void main(String[] args) {
       int [] arr1=new int[]{1,3,6,4,8,6};
        int [] arr2=new int[]{1,3,5,4,8,6};
        boolean ret=Arrays.equals(arr1,0,3,arr2,0,3);
        System.out.println(ret);//false
    }

hashCode

public static int hashCode(Object[] a)

功能:返回一维数组的哈希值

public static void main(String[] args) {
        String [] str={"hello","world","very","good"};
        int hash=Arrays.hashCode(str);
        System.out.println(hash);//848621256
    }

deepHashCode

方法原型:

public static int deepHashCode(Object[] a)

功能:计算多维数组的哈希值并返回

public static void main(String[] args) {
        int [][] arr={{1,2,3},{4,5,6}};
        int hash=Arrays.deepHashCode(arr);
        System.out.println(hash);//990084
    }

setAll

方法原型:

public static void setAll(int[] array,java.util.function.IntUnaryOperator generator)
//generator----生成器
public static void main(String[] args) {
        int [] arr={1,2,3,4,5,6};
        Arrays.setAll(arr,i->arr[i]+2);
        //i为索引值,接受索引并为该位置生成所需值的函数
        System.out.println(Arrays.toString(arr));//[3, 4, 5, 6, 7, 8]
    }

parallelPrefix

方法原型:

public static void parallelPrefix(int[] array,java.util.function.IntBinaryOperator op)
public static void main(String[] args) {
        int [] arr={1,2,3,4,5,6,7,8};
        Arrays.parallelPrefix(arr,(x,y)->x*y);
        /*第一个元素不变,将数组第一个元素和第二个元素传给参数x,y
        函数x*y的返回值则作为数组的新元素.
        接下来将刚返回来的函数值和下一个元素4传给x,y
        ...依次类推*/
        System.out.println(Arrays.toString(arr));//[1, 2, 6, 24, 120, 720, 5040, 40320]
    }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值