package com.wut.exer;
import java.util.Arrays;
public class ArrayExer4 {
public static void main(String[] args) {
// 1. 使用冒泡排序,实现如下的数组从小到大排序。
int[] arr = new int[] { 34, 5, 22, -98, 6, -76, 0, -3 };
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.print(Arrays.toString(arr));//[-98, -76, -3, 0, 5, 6, 22, 34]
// 2.反转上述数组
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
System.out.println(Arrays.toString(arr));//[34, 22, 6, 5, 0, -3, -76, -98]
// 3.复制上述数组,得到一个新的数组
int[] arr1 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr1[i] = arr[i];
}
System.out.println(Arrays.toString(arr1));//[34, 22, 6, 5, 0, -3, -76, -98]
// 4.使用线性查找,从上述数组中查找22是否存在。
// 存在,返回所在位置的索引。不存在,输出提示信息。
int[] arr2 = new int[] { -88, 99, 84, 65, 48, 95, 87 };
int dest = Arrays.binarySearch(arr2, 65);
if (dest >= 0) {
System.out.println(dest);//3
} else {
System.out.println("不存在");
}
}
}
Arrays的工具方法:判断相等、输出数组、填充、排序、查找
// 1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
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);
// 2.String toString(int[] a):输出数组信息。
System.out.println(Arrays.toString(arr1));
// 3.void fill(int[] a,int val):将指定值填充到数组之中。
Arrays.fill(arr1, 1);
System.out.println(Arrays.toString(arr1));
// 4.void sort(int[] a):对数组进行排序。
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
// 5.int binarySearch(int[] a,int key)
int[] arr3 = new int[] { -211, -34, 2, 34, 54, 66, 79, 105, 210, 333 };
int dest = Arrays.binarySearch(arr3, 211);
if (dest >= 0) {
System.out.println(dest);
} else {
System.out.println("未找到");
}