java.uitl.Arrays类为操作数组的工具类,包含了操作数组的各种方法
方法 | 用法 |
---|---|
boolean equals(int[] a, int[] b) | 判断两个数组是否相等 |
String toString(int[] a) | 输出数组信息 |
void fill(int[] a, int val) | 将指定值填充到数组中 |
void sort(int[] a) | 对数组进行排序 |
int binarySearch(int[] a, int key) | 对排序后的数组进行二分法检索指定的值 |
- boolean equals(int[] a, int[] b) 判断两个数组是否相等
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = new int[]{1, 2, 3, 4};
int[] arr2 = new int[]{1, 3, 2, 4};
boolean isEquals = Arrays.equals(arr1, arr2);
System.out.println(isEquals);
}
}
/*
false
*/
public static boolean equals(int[] a, int[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
- String toString(int[] a) 输出数组信息
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = new int[]{1, 2, 3, 4};
System.out.println(Arrays.toString(arr1));
}
}
/*
[1, 2, 3, 4]
*/
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
- void fill(int[] a, int val) 将指定值填充到数组中
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = new int[]{1, 2, 3, 4};
int[] arr2 = new int[]{1, 3, 2, 4};
System.out.println(Arrays.toString(arr1));
Arrays.fill(arr1, 10);
System.out.println(Arrays.toString(arr1));
}
}
/*
[1, 2, 3, 4]
[10, 10, 10, 10]
*/
public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
- void sort(int[] a) 对数组进行排序(默认排序为升序排序)
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr2 = new int[]{1, 3, 2, 4};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
}
}
/*
[1, 2, 3, 4]
*/
- int binarySearch(int[] a, int key) 对排序后的数组进行二分法检索指定的值
–binarySearch方法为二分法查找,所以数组必须是有序的或者是用sort()方法排序之后的
1.搜索值在数组中,返回返回索引值
2.搜索值不在范围内,且小于范围内元素,由1开始计数,返回 -1 或**- 插入点** (负号+插入点)
3.搜索值不在范围内,且大于范围内元素,返回 -(endIndex + 1)
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
int[] arr2 = new int[]{1, 7, 9, 5};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
int index = Arrays.binarySearch(arr2, 9);
int index2 = Arrays.binarySearch(arr2, 4);
int index3 = Arrays.binarySearch(arr2, 10);
System.out.println(index);
System.out.println(index2);
System.out.println(index3);
}
}
/*
[1, 5, 7, 9]
3
-2
-5
*/