java常用类Arrays
Arrays类:是针对数组操作的工具类,提供了排序、查找等功能
常用的成员方法:
public static String toString(int[] arr); 返回指定数组内容的字符串形式
public static void sort(int[] arr); 对指定int类型数组按数字升序进行排序
public static int binarySearch(int[] arr,int key); 使用二分法指定法来搜索指定的int 型数组,以获取指定的值
static boolean equals(int[] arr,int[] arr2); 比较两个数组中的元素是否一样
static int[] copyOf(int[] original,int newLength); 复制旧数组中的元素到一个新的数组中,新的数组长度是newLength 从0开始复制
static int[] copyOfRang(int[] original,int from,int to); 复制旧数组中的指定范围间的几个元素到新的数组中
class MyTest{
public static void main(String[] args){
int[] arr={
50,123,543,187,49,30,0,2,11,100};
System.out.println(Arrays.toString(arr));
}
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(", ");
}
}
}
结果是
import java.util.Arrays;
class MyTest{
public static void main(String[] args) {
int[] arr={
1,2,3,4};
int[] arr2={
1,2,3,4};
System.out.println(Arrays.equals(arr, arr2));
}
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;
}
}
结果是
class MyTest{
public static void main(String[] args) {
int[] arr={
1,2,3,4,5,6,7,8,9};
int i = Arrays.binarySearch(arr,8);
System.out.println(i);
}
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
int key) {
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
int mid = (low + high) >>> 1;
int midVal = a[mid];
if (midVal < key) {
low = mid + 1;
} else if (midVal > key) {
high = mid - 1;
} else {
return mid;
}
}
return -(low + 1);
}
}
结果是
class MyTest {
public static void main(String[] args) {
int[] arr={
50,123,543,187,49,30,0,2,11,100};
int[] ints = Arrays.copyOf(arr, 7);
System.out.println(Arrays.toString(ints));
int[] ints2 = Arrays.copyOfRange(arr, 3, 8);
System.out.println(Arrays.toString(ints2));
}
}
结果是