Java 数组工具类 Arrays
Arrays
Arrays类提供了几个使用很便捷的方法。
-
toString(type[] a)
-
示例
int[] arr = { 10, 20, 30 };
System.out.println(Arrays.toString(arr)); 运行结果
返回 arr 中数据元素的字符串,这些元素被放在中括号内,并用逗号分隔。toString() Java 源代码
Arrays.toString() 底层使用 StringBuilder 来拼接数组中的每一个元素。
-
-
sort(type[] a)
-
示例
int[] arr = { 3, 5, 2, 6, 1, 4 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); 运行结果
sort 方法使用快速排序算法为数组内的元素进行排序。
-
-
binarySearch(type[] a, type v)
-
示例
int[] arr = { 1, 2, 3, 4, 5 };
int index = Arrays.binarySearch(arr, 3);
System.out.println(index);
index = Arrays.binarySearch(arr, 10);
System.out.println(index); 运行结果
-
注意
binarySearch 即 二分查找算法,调用这个方法前必须保证数组经过排序,否则返回的结果可能不是我们所期望的。
如果要查找的值在数组内,则返回该值第一次被查找到时的索引值,否则返回(- (插入点)-1),上面的示例中第二次查找的元素 10 不在数组内,当插入点移动到 5 时结束查找,并返回 -5 - 1 也就是 -6。
binarySearch 方法有一个重载方法,可以指示在什么范围进行查找。 binarySearch(type[] a, int start, int end, type v)
-
-
fill(type[] a, type v)
-
示例
int[] arr = new int[5];
//从索引 1 的位置开始,到所有 3 的位置结束(不包括3),将此范围内的元素赋值为 3
Arrays.fill(arr, 1, 3, 3); // 示例使用带范围的重载方法,更多请参考 API 文档
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
} 运行结果
-
-
equals(type[] a, type[] b)
- 判断两个数组是否相等。
- 如果数组大小相同,并且下标相同的元素都对应相等,返回 true 。
-
示例
int[] a = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
System.out.println(Arrays.equals(a, b)); 运行结果
总结
- Arrays 类提供的方法能很方便的帮助我们操作数组,我们的程序中会大量使用数组,所以这些方法应当掌握。