Arrays类
概述:
是一个工具包类,java.util.Arrays。此类只要是用来操作数组,里面提供了很多的操作数组的API方法,如排序和搜索功能。其中所有的方法均为静态方法,调用起来非常简单。
操作数组
1.public static String toString(int[ ] a)
返回指定数组内容的字符串表现形式
public static void main(String[] args){
//初始化一个int类型的数组,静态初始化,只指定内容,长度系统推定
int[] arr={1,2,3,5,56,123};
//打印数组
System.out.println(arr);//此时这是一个地址值
//把数组内容转换成字符串
String str=Arrays.toString(arr);
//打印字符串,输出数组内容
System.out.println(str);//[1,2,3,5,56,123] 内容数组不变
}
2.public static void sort(int[ ] arr)
对指定的int数组按照升序排序
public static void main(String[] args){
int[]={123,56,5,3,2,1};
System.out.println(Arrays.toString(arr));//排序前 [123,56,5,3,2,1]
//升序排列
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));//[1,2,3,5,56,123]
}
练习:将一个任意字符串中的所有字符按照升序排列,倒序打印输从
public class ArrayDemo{
public static void main(String[] args){
String str="dsadsadsafdxvcx";
char[] c=str.toCharArray();
//升序排列
Arrays.cort(c);
//遍历
for(int i=c.length-1;i>0;i--){
System.out.print(c[i]+" ");//x x v s s s f d d d d c a a
}
}
}
3.public static int binarySearch(int[] arr,int key)
使用二分搜索法来搜查指定的int类类数组,获得指定的值
public static void main(String[] args){
//定义一个int类型数组
int[] arr={10,20,5,30,40,50,2,45,222};
//搜索5这个数在arr中的索引
int index=Arrays.binarySearch(arr,5);
System.out.println("5的索引是"+index);
//5的索引是-1
}
很明显,这个结果是不正确的,因为使用binarySearch()方法,数组必须是有序的【升序】,需要先排序,得到的索引值是排序之后的新的数组的索引值,如果没有找到对应的元素值,返回一个随机负值
public static void main(String[] args){
//定义一个int类型数组
int[] arr={10,20,5,30,50,1,894,40,50};
Arrays.sort(arr);//[1,5,10,20,30,40,50,50,894]
//搜索5这个数在arr中的索引
int index=Arrays.binarySearch(arr,5);
System.out.println("5的索引是"+index);
//5的索引是6
}
4.public static void fill(int [ ]a, int val)
将指定的int值分配给指定int类型的每个元素
public static void main(String[] args){
//定义一个int类型的数组
int[] arr={10,20,5,30,40,50,2,45,222};
//想要把100 元素值分配给arr数组
Arrays.fill(arr,100);
//输出
System.out.println(Arrays.toString(arr);
//[100, 100, 100, 100, 100, 100, 100, 100, 100]
}