【Arrays工具类的常见方法总结】
提纲1:Arrays.asList( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.asList( )的作用是将数组转换成List,将List集合中的对象添加到ArraysList集合中
参数:动态参数(T...a)
返回值:List集合
举例:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class demo01 {
public static void main(String[] args) {
//创建临时的List集合
List<String> girlList=Arrays.asList("小张","小王","小李","小杨");
//全部添加至ArrayList集合中
ArrayList<String> list=new ArrayList<String>();
list.addAll(girlList);
System.out.println(list);
}
}
源代码解读:
提纲2:Arrays.binarySearch( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.binarySearch( )方法的作用是在一组有序数组里面查找目标元素
参数:(int[]a,int key)
返回值:查找到的目标元素的下标
举例:
public class Demo06 {
public static void main(String[] args) {
//查找元素:使用Arrays工具类的binarySearch()方法
//int[]numbers={11,12,13,14,17,18,19,23,27};
int[]numbers= {3,6,2,15,19,22,2,11};
int target=19;
//快速排序
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));
//基于二分查找,要求数组必须排序
int index=Arrays.binarySearch(numbers, target);
System.out.println(index);
}
}
运行结果:
源代码解读:
提纲3:Arrays.copyOf( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.copyOf( )方法的作用是复制数组
参数1:原数组
参数2:复制的元素个数
返回值:int类型的数组
举例:
public class Demo02 {
public static void main(String[] args) {
//数组复制
//方式2:通过Arrays工具类的CopyOf()\CopyOfRange()
int[] numbers= {1,2,3,4,5,6,7};
System.out.println("原数组内容:"+Arrays.toString(numbers));
//复制前四个元素:从下标0开始复制,复制前四个元素
int[]arr1=Arrays.copyOf(numbers, 4);
System.out.println("前四个元素:"+Arrays.toString(arr1));
//复制所有元素:从下标0开始复制,复制所有元素
int[]arr2=Arrays.copyOf(numbers,numbers.length);
System.out.println("所有元素:"+Arrays.toString(arr2));
}
public class Demo01 {
public static void main(String[] args) {
int[] numbers= {1,2,3,4,5,6,7};
int[]target=new int[numbers.length];
//参数1:原数组
//参数2:开始复制的位置
//参数3:目标数组
//数组4:开始存储的位置
//数组5:复制的长度(复制的元素个数)
//输出数组内容arraycopy
System.arraycopy(numbers, 0, target, 0, numbers.length);
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(target));
//输出数组类型和内存地址
System.out.println(numbers);
System.out.println(target);
}
}
运行结果:
源代码解读:
提纲4:Arrays.copyOfRange( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.copyOfRange( )方法的作用是复制指定区间的元素
参数1:原数组
参数2:开始复制的位置
参数3:结束位置
返回值:int类型的数组
举例:
import java.lang.reflect.Array;
import java.util.Arrays;
public class Demo02 {
public static void main(String[] args) {
//数组复制
//方式2:通过Arrays工具类的CopyOf()\CopyOfRange()
int[] numbers= {1,2,3,4,5,6,7};
//复制指定区间元素:从下表标2开始复制,复制下标6之前的元素
int[]arr3=Arrays.copyOfRange(numbers, 2, 6);
System.out.println("指定区间元素:"+Arrays.toString(arr3));
System.out.println();//空一行
System.out.println(numbers);
System.out.println(arr3);
}
}
运行结果:
源代码解读:
提纲5:Arrays.fill( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.fill( )的作用是数组的填充,将一个数组填充为目标数组
参数1:一个数组
参数2:填充的数字
返回值:没有返回值 void
举例:
public class Demo05 {
public static void main(String[] args) {
//初始化的值,必须在声明数组
// int numbers1= {1,2};
int[]numbers2=new int[100];//默认值0
System.out.println("默认值:"+Arrays.toString(numbers2));
//方式1
for(int i=0;i<numbers2.length;i++) {
numbers2[i]=-1;
}
System.out.println("设置-1:"+Arrays.toString(numbers2));
//方式2
Arrays.fill(numbers2, -2);
System.out.println("设置-2:"+Arrays.toString(numbers2));
}
}
运行结果:
源代码解读:
提纲6:Arrays.sort( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.sort( ) 的作用是对数组进行排序(快速排序)
参数:需要排序的数组
返回值:没有返回值 void
举例:
public class Test03 {
public static void main(String[] args) {
String[]contactArray= {"Megatron","s司马铁锤","Laden","angelababy","b比尔盖饭","i林平之","m马云","Gaddafi","g郭得杠"};
String target="m马云";
int index=-1;
//先排序
Arrays.sort(contactArray);
System.out.println(Arrays.toString(contactArray));
//方式1
//int index=Arrays.binarySearch(contactArray,target);
//System.out.println(index);
//方式2
int low=0,high=contactArray.length-1;
while(low<=high) {
int mid=(low+high)>>1;//相当于除以2
if(contactArray[mid].compareTo(target)==0) {
index=mid;
break;
}else if(contactArray[mid].compareTo(target)>0){
high=mid-1;
}else if(contactArray[mid].compareTo(target)<0) {
low=mid+1;
}
}
System.out.println(index);
}
}
运行结果:
源代码解读:
提纲7:Arrays.toString( )作用、参数、返回值、举例、【加分项:源代码解读】
作用:Arrays.toString( )的作用是将数组转换为字符串的形式表示,查看数组的内容。
参数:一个数组
返回值:字符串
举例:
public class Demo02 {
public static void main(String[] args) {
//数组复制
int[] numbers= {1,2,3,4,5,6,7};
System.out.println("原数组内容:"+Arrays.toString(numbers));
System.out.println(numbers);
}
}
运行结果:
源代码解读: