Arrays工具类的常见方法总结

一、Arrays.asList()

作用:将一个指定类型的参数或是数组以List类型返回

参数:观察源码可知为一个泛型动态参数或是一个泛型数组(必须为引用类型的数组) 

返回值:一个list列表

 源码:

举例: 

public class Test12 {
	public static void main(String[] args) {
		Integer[] arr = new Integer[] {1,2,3,4,5,6};
 		List<Integer> list1 = Arrays.asList(arr);
 		List<String> list2 = Arrays.asList("a","s","d","f");
 		System.out.println(list1);
 		System.out.println(list2);
	}
}

运行结果:

[1, 2, 3, 4, 5, 6]
[a, s, d, f]

二、Arrays.binarySearch( )

作用:对已经排序的数组进行二分查找

参数:一个泛型数组和一个泛型元素

返回值:为int类型

 源码: 

 这里binarySearch()方法返回了一个binarySearch0()参数表示一个数组a,从下标位置0开始到数组尾部,key为目标值

可以看出 binarySearch0()方法就是一个二分查找算法;

若是存在目标元素key则返回mid,不存在则返回-(low+1)

举例:  

		int[] num = new int[] { 1, 2, 3, 4, 5, 6 };
		int ret = Arrays.binarySearch(num, 4);
		System.out.println(ret);  //目标元素4的下标位置为3

三、Arrays.copyOf( )

作用:复制一个数组,并且可以指定新数组的长度

参数:一个泛型数组(原数组对象)和一个整型元素(新数组长度)

返回值:一个泛型数组

 源码: 

 

 创建了一个和原数组相同类型的数组,然后调用了System.arraycopy()方法,最后返回目标数组

举例:  


		int[] num = new int[] { 1, 2, 3, 4, 5, 6 };
		int[] num1 = Arrays.copyOf(num,num.length+1);
		System.out.println(Arrays.toString(num1));  //[1, 2, 3, 4, 5, 6, 0]
		System.out.println(Arrays.toString(num));  //[1, 2, 3, 4, 5, 6]

四、Arrays.copyOfRange( )

作用:复制一个数组中指定范围的元素

参数:一个泛型数组(原数组对象)和两个整型元素(从下标位置为from到to的位置)

返回值:一个泛型数组

 源码: 

 先判断所选定下标范围是否小于0,若是小于0则抛出异常IllegalArgumentException;若是大于0,则创建一个和所选下标范围长度相同的数组,然后调用System.arraycopy()方法,最后返回所创建的数组。

举例:  

        int[] num = new int[] { 1, 2, 3, 4, 5, 6 };
		int[] num1 = Arrays.copyOfRange(num, 2, 4);    //截取下标[2,4)的范围并复制
		System.out.println(Arrays.toString(num1)); //[3, 4]
		System.out.println(Arrays.toString(num));    //[1, 2, 3, 4, 5, 6]

五、Arrays.fill( )

作用:将数组中的所有元素都设为指定的值

参数:一个泛型数组(原数组对象)和一个泛型元素

返回值:voi

 源码: 

 

 通过遍历目标数组,将数组中的每个元素赋值为指定的值

举例:  

		int[] num = new int[] { 1, 2, 3, 4, 5, 6 };
		Arrays.fill(num, 0);
		System.out.println(Arrays.toString(num));    //[0, 0, 0, 0, 0, 0]

六、Arrays.sort( )

作用:对数组中的元素进行排序(默认为升序)

参数:一个泛型数组

返回值:void

 源码:

通过传入一个数组,然后调用DualPivotQuicksort类的sort()方法(原理是快速排序)

举例: 

		int[] num = new int[] { 5, 2, 9, 45, 3, 6 };
		Arrays.sort(num);
		System.out.println(Arrays.toString(num));    //[2, 3, 5, 6, 9, 45]

 

七、Arrays.toString( )

作用:将数组转化为字符串

参数:一个泛型数组

返回值:一个字符串

 源码:

 先判断传入的数组是否为空,定义一个iMax以确定数组结束的位置,判断iMax是否为正数;然后创建一个StringBuilder对象,这里使用StringBuilder是因为 String类型的值一旦确定就不可变,而且每次对String进行操作时,都会生成新的对象,效率低,占用大量的内存,而在对StringBuffer进行操作时,不会生成新的对象,不会占用大量内存(默认分配16字节长度的缓冲区,当字符串超过该大小时,会自动增加缓冲区长度,而不是生成新的对象);最后对每个字符进行拼接操作。

举例:

		int[] num ={ 5, 2, 9, 45, 3, 6 };
		System.out.println(Arrays.toString(num));
        //[5, 2, 9, 45, 3, 6]

相关推荐

  1. Js Array相关总结

    2024-02-23 21:42:01       49 阅读
  2. <span style='color:red;'>Arrays</span><span style='color:red;'>类</span>

    Arrays

    2024-02-23 21:42:01      11 阅读
  3. <span style='color:red;'>Arrays</span><span style='color:red;'>类</span>

    Arrays

    2024-02-23 21:42:01      12 阅读
  4. 开发常用一些工具总结

    2024-02-23 21:42:01       18 阅读
  5. 常用测试工具有10

    2024-02-23 21:42:01       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-23 21:42:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-23 21:42:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-23 21:42:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-23 21:42:01       20 阅读

热门阅读

  1. 00_C语言学习笔记

    2024-02-23 21:42:01       32 阅读
  2. 算法训练营day32,贪心算法6

    2024-02-23 21:42:01       39 阅读
  3. html开启严格模式

    2024-02-23 21:42:01       36 阅读
  4. MYSQL--触发器

    2024-02-23 21:42:01       29 阅读
  5. Linux(四)__用户和用户组管理

    2024-02-23 21:42:01       24 阅读
  6. C# 类型的默认值(C# 参考)

    2024-02-23 21:42:01       35 阅读
  7. 【leetcode热题】二叉树展开为链表

    2024-02-23 21:42:01       34 阅读
  8. 服务器丢包的原因及解决方法

    2024-02-23 21:42:01       38 阅读
  9. Oracle执行计划中字段后(+)的意思

    2024-02-23 21:42:01       29 阅读