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]
}