Arrays工具类的常见方法总结

1、Arrays.asList()作用、参数、返回值、举例。

(1)Arrays.asList()的作用:将数组转化成List集合的方法。

(2)Arrays.asList()的参数:String、Integer等、不建议使用byte,short,int,long,float,double, boolean。因为asList接收的是一个泛型变长参数,而我们知道基本类型是不能泛型化的,就是说8种基本类型不能作为泛型参数,要想作为泛型参数就要使用其所对应的包装类

int[] n = {1,2,3};
Integer[] n1 = {1,2,3};
		
List listA = Arrays.asList(n);
List listB = Arrays.asList(1,2,3);
List listC = Arrays.asList(n1);
		
System.out.println(listA.size());// 1 // 使用数组类型,所以返回的也是以数组为元素的列表长度
System.out.println(listB.size());// 3 // 因为传入的是基本数据类型,所以进行了自动打包。
System.out.println(listC.size());// 3 // 传入的是int的包装类型,所以正常返回列表长度

 (3)Arrays.asList()的返回值:返回的是一个List,是一个 Arrays 类的内部类,它持有一个对原始数组的引用。该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新。它还是final类型修饰的,所以这个静态内部类是不能做任何内部元素的添加删除操作的,就跟String类一样,String对象存储字符数组的变量也是有final修饰符的。因为一旦增加数组元素,这个数组容量已经定好的容器就无法装载增加的元素了。Arrays.asList() 返回的 List 是可序列化的。

(4)Arrays.asList()的举例:

不可内部元素改变代码:

public class work1 {
    public static void main(String[] args) {
		List<Integer> maths = Arrays.asList(3,6);
		maths.add(100);
	}
}

 结果:

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)
	at javaDemo.work1.main(work1.java:9)

数组与列表自动更新:

public class work1 {
    public static void main(String[] args) {
    	Integer[] maths = {5,8,2,4,1};
		List<Integer> testList = Arrays.asList(maths);
		System.out.println("list原始顺序:"+testList);
		Collections.shuffle(testList);
		System.out.println("list打乱后顺序:"+testList);
		System.out.println("list打乱顺序后数组内容:"+Arrays.toString(maths));
	}
}

结果:

list原始顺序:[5, 8, 2, 4, 1]
list打乱后顺序:[1, 2, 4, 8, 5]
list打乱顺序后数组内容:[1, 2, 4, 8, 5]

2、Arrays.binarySearch()作用、参数、返回值、举例。

(1)Arrays.binarySearch()的作用:使用二分查找法来搜索指定的数组,以获得指定对象。但是被调用的数组必须是有序的。

public class work1 {
    public static void main(String[] args) {
    	int[] maths = {1,3,6,8,9};
		System.out.println(Arrays.binarySearch(maths, 8));
        // 结果为3
	}
}

(2)Arrays.binarySearch()的参数:

  • binarySearch(Object[] a, Object key):a代表查找的数组,key代表查找的对象。
  • binarySearch(Object[] a, int fromIndex, int toIndex, Object key):a代表查找的数组,fromIndex代表要从数组的下标几开始,toIndex代表从数组下标几结束,key代表查找的对象。

(3)Arrays.binarySearch()的返回值:返回的是目标元素在目标数组中的下标,如果在数组中则返回正常下标。如果不存在,则返回一个负数。

(4)Arrays.binarySearch()的举例:

int arr[] = { 3, 5, 7, 9, 11, 13 };
		Arrays.sort(arr);
		System.out.println("数字11的位置是:" + Arrays.binarySearch(arr, 1, 4, 9));
		// 结果:3
public class work1 {
	public static void main(String[] args) {
		int arr[] = { 3, 5, 7, 9, 11, 13 };
		Arrays.sort(arr);
		System.out.println("数字11的位置是:" + Arrays.binarySearch(arr,11));
		// 结果:4
	}
}

3、Arrays.copyOf()作用、参数、返回值、举例。

(1)Arrays.copyOf()的作用:拷贝数组,从下标0开始,如果超过原数组长度,会用null或0进行填充。

(2)Arrays.copyOf()的参数:Arrays.copyOf(T[] original,int newLength),其中original代表要拷贝的数组对象,newLength代表拷贝的新数组长度

(3)Arrays.copyOf()的返回值:返回的是一个新的数组对象

(4)Arrays.copyOf()的举例:

public class work1 {
	public static void main(String[] args) {
		int[] arr = { 3, 5, 7, 9, 11, 13 };
		int[] newArr = Arrays.copyOf(arr, 9);
		System.out.println(Arrays.toString(newArr));
		// 结果:[3, 5, 7, 9, 11, 13, 0, 0, 0]
	}
}

4、Arrays.copyOfRange()作用、参数、返回值、举例。

(1)Arrays.coptOfRange()的作用:将指定数组的指定范围复制到一个新的数组中。

(2)Arrays.coptOfRange()的参数:java.util.Arrays.copyOfRange(boolean[] original, int from, int to),其中original是从中复制范围的数组,from是要复制的范围的初始索引,包括在内,to是复制的范围的最终索引,不包括在内。

(3)Arrays.coptOfRange()的返回值:返回一个包含指定范围的新数组,该数组被截断或填充假元素以获得所需的长度。

(4)Arrays.coptOfRange()的举例:

public class work1 {
	public static void main(String[] args) {
		int[] arr = { 3, 5, 7, 9, 11, 13 };
		int[] newArr = Arrays.copyOfRange(arr, 2, 9);
		System.out.println(Arrays.toString(newArr));
		// 结果:[7, 9, 11, 13, 0, 0, 0]
	}
}

5、Arrays.fill()作用、参数、返回值、举例。

(1)Arrays.fill()的作用:填充一个数组的所有元素或一个区间内的所有元素,将它们设置为指定的值。

(2)Arrays.fill()的参数:

    Arrays.fill(Type[] array, Type value),其中array是目标数组,可以是基本类型数组或引用类型数组,value 是要设置的值,它必须与数组元素的类型相匹配。

    Arrays.fill(Type[] array, int startIndex, int endIndex, Type value),其中array是想要找到的目标数组,startIndex是填充操作的起始位置(包括自己),endIndex是填充操作的结束位置(不包括自己),value是要设置的值,它必须与数组元素的类型相匹配。

(3)Arrays.fill()的返回值:不返回返回值,只是将原数组进行填充

(4)Arrays.fill()的举例:

public class work1 {
	public static void main(String[] args) {
		int[] arr = { 3, 5, 7, 9, 11, 13 };
		Arrays.fill(arr, 2);
		System.out.println(Arrays.toString(arr));
		// 结果:[2, 2, 2, 2, 2, 2]
	}
}
public class work1 {
	public static void main(String[] args) {
		int[] arr = { 3, 5, 7, 9, 11, 13 };
		Arrays.fill(arr, 2, 5, 2);
		System.out.println(Arrays.toString(arr));
		// 结果:[3, 5, 2, 2, 2, 13]
	}
}

6、Arrays.sort()作用、参数、返回值、举例。

(1)Arrays.sort()的作用:对括号中的数组进行排序。

(2)Arrays.sort()的参数:

  • sort(T[] a),其中a代表的就是传入的数组,对数组升序排序。
  • sort(T[] a,int formIndex, int toIndex),其中a代表的就是传入的数组,formIndex代表排序操作的起始位置(包括自己),toIndex代表排序操作的结束位置(不包括自己),对区间内数组升序排序。
  • sort(T[] a, Comparator<? supre T> c),根据指定比较器产生的顺序对T型数组进行排序。
  • sort(T[] a, int formIndex, int toIndex, Comparator<? supre T> c): 根据指定比较器产生的顺序对T型数组的指定范围进行排序。

(3)Arrays.sort()的返回值:没有返回值,是在原来数组的空间基础上进行升序排序。

(4)Arrays.sort()的举例:

public class work1 {
	public static void main(String[] args) {
		int[] arr = { 23, 56, 44, 89, 12, 11, 39 };
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
		// 结果:[11, 12, 23, 39, 44, 56, 89]
	}
}
public class work1 {
	public static void main(String[] args) {
		int[] arr = { 23, 56, 44, 89, 12, 11, 39 };
		Arrays.sort(arr, 2, 5);
		System.out.println(Arrays.toString(arr));
		// 结果:[23, 56, 12, 44, 89, 11, 39]
	}
}

7、Arrays.toString()作用、参数、返回值、举例。

(1)Arrays.toString()的作用:返回指定数组内容的字符串表示形式。

(2)Arrays.toString()的参数:long,float,double,int,boolean,byte,object类型的数组。

(3)Arrays.toString()的返回值:指定数组内容转化后的字符串。

(4)Arrays.toString()的举例:

public class work1 {
	public static void main(String[] args) {
		int[] arr = { 23, 56, 44, 89, 12, 11, 39 };
		System.out.println(Arrays.toString(arr));
		// 结果:[23, 56, 44, 89, 12, 11, 39]
	}
}

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值