以下是Arrays工具类常用的一些方法:
1、Arrays.sort(Object[] array) 对数组元素进行排序
2、Arrays.asList(T…data) 将数组转换为集合,接收一个可变参数
3、Arrays.toString(Object[] array) 返回数组元素的字符串形式
4、Arrays.deepToString(Object[] array) 返回多维数组元素的字符串形式
5、Arrays.binarySearch(Object[] array, Object key) 使用二分法查找 “有序数组” 内指定元素的索引值
6、Arrays.copyOf(T[] original,int newLength) 拷贝数组,下标从0开始,如果新数组长度超过原数组长度,会用null进行填充
7、Arrays.copyOfRange(T[] original,int from,int to) 拷贝数组,指定起始位置和结束位置,如果新数组长度超过原数组长度,会用null进行填充
8、Arrays.fill(Object[] array,Object obj) 用指定的元素填充整个数组,替换掉原来的元素
9、Arrays.fill(Object[] array,int fromIndex,int toIndex,Object obj)
package Test;
import java.util.Arrays;
import java.util.List;
public class ArraysTest {
public static void main(String[] args) {
int[] arr1 = {23,4,78,9,36,20};
//测试Arrays.sort(Object[] array) 对数组元素进行排序
Arrays.sort(arr1);
//测试Arrays.toString(Object[] array) 返回数组元素的字符串形式
System.out.println(Arrays.toString(arr1));
//测试Arrays.asList(T...data) 将数组转换为集合,接收一个可变参数
/*
Arrays.asList(T...data) 将数组转换为集合,接收一个可变参数
该方法返回的是Arrays内部静态类ArrayList,而不是我们平常使用的集合ArrayList
该静态类ArrayList没有覆盖父类的add、remove方法,如果直接调用会报异常:
java.lang.UnsupportedOperationException
*/
String[] arr2 = {"abc","def","rgh","lef","pyth"};
List<String> list = Arrays.asList(arr2);
//list.add("gbn");//java.lang.UnsupportedOperationException
for (String ele: list ) {
System.out.println(ele);
}
/*
如果将基本类型的数组作为参数传入,Arrays.asList(T...data)会把整个数组
当作转换后的List的第一个元素
*/
int[] arr3 = {345,6,3,2,1};
List<int[]> list1 = Arrays.asList(arr3);
System.out.println(list1.size());//长度为:1
//Arrays.deepToString(Object[] array) 返回多维数组元素的字符串形式
int[][] arr4 = {{1,2,3},{4,5,6},{7,8,9}};
System.out.println(Arrays.deepToString(arr4));//[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
//Arrays.binarySearch(Object[] array, Object key) 使用二分法查找 "有序数组" 内指定元素的索引值
int[] arr5 = {78,65,2,3,89,12,45};
Arrays.sort(arr5);
int index = Arrays.binarySearch(arr5,3);
System.out.println(index);// 1
//Arrays.copyOf(T[] original,int newLength)
// 拷贝数组,下标从0开始,如果新数组长度超过原数组长度,会用null进行填充
String[] arr6 = {"北京","上海","杭州","成都","深圳","西安","南京"};
String[] arr6_copy = Arrays.copyOf(arr6,4);
System.out.println(Arrays.toString(arr6_copy));//[北京, 上海, 杭州, 成都]
//Arrays.copyOfRange(T[] original,int from,int to)
// 拷贝数组,指定起始位置和结束位置,如果新数组长度超过原数组长度,会用null进行填充
String[] arr6_copy2 = Arrays.copyOfRange(arr6,2,4);
System.out.println(Arrays.toString(arr6_copy2));//[杭州, 成都]
//Arrays.fill(Object[] array,Object obj) 用指定的元素填充整个数组,替换掉原来的元素
int[] arr7 = {2,3,4,5,6,7,8};
Arrays.fill(arr7,1);
System.out.println(Arrays.toString(arr7));//[1, 1, 1, 1, 1, 1, 1]
//Arrays.fill(Object[] array,int fromIndex,int toIndex,Object obj)
//用指定的元素从起始位置到结束位置(左闭右开)填充数组,替换掉数组中原来的元素
//超出数组的长度会报异常:ava.lang.ArrayIndexOutOfBoundsException
String[] arr8 = {"北京","上海","杭州","成都","深圳","西安","南京"};
Arrays.fill(arr8,3,5,"青岛");//[北京, 上海, 杭州, 青岛, 青岛, 西安, 南京]
//Arrays.fill(arr8,3,8,"青岛");//ava.lang.ArrayIndexOutOfBoundsException
System.out.println(Arrays.toString(arr8));
}
}
版权声明:本文为weixin_45717072原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。