1、一维数组的使用
- int[] name = {1,4,3,2,5,6,8};
- Java数组的索引是从0开始的,到数组的长度-1结束。
2、如何获取数组长度以及遍历数组
public class ArrayTest1 {
public static void main(String[] args) {
int[] num = {1,4,3,2,8,6};
System.out.println(num.length);//获取长度
//遍历数组的每个元素
for (int s: num){
System.out.print(s + " ");
}
}
}
3、多维数组的使用
int[][] arr = {{5},{5}};
//1、获取数组指定位置元素
System.out.println(arr[0][0]);
//获取多维数组长度
System.out.println(arr[0].length);//第一行的元素
//3、如何遍历二维数组
for (int i = 0; i < arr.length;i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
4、随机数
公式:Math.random()*(n-m + 1)+m,生成大于等于m小于n的随机数;
5、数组复制、数组反转
String[] arr = {"詹姆斯","浓眉","科比","威少","哈登"};
//复制数组
String[] arr1 = new String[arr.length];
for (int i = 0; i < arr1.length; i++) {
arr1[i] = arr[i];
}
//数组反转方式1
for (int i = 0; i < arr.length / 2; i++) {
String temp = arr[i];
arr[i] = arr[arr.length - i -1];
arr[arr.length - i -1] = temp;
}
//反转方式二
for (int i = 0, j = arr.length -1; i < j; i++,j--) {
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//遍历
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
6、查找(线性查找和二分查找)
(1)线性查找
public class ArrayTest3 {
public static void main(String[] args) {
String[] arr = {"詹姆斯","浓眉","科比","威少","哈登"};
//查找
Scanner scanner = new Scanner(System.in);
System.out.println("请出入:");
String dest = scanner.next();
boolean isFlag = true;
for (int i = 0; i < arr.length; i++) {
if (dest.equals(arr[i])) {
System.out.println("找到之指定元素位置为:" + i);
isFlag = false;
break;
}
}
if (isFlag) {
System.out.println("对不起,没有找到!");
}
}
}
(2)二分查找
public class ArrayTest3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//二分查找
//使用二分法查找前提是必须有序
int[] arr2 = {-1,2,4,5,6,7,8,9,11,12};
System.out.println("请出入你要找的值:");
int index = scanner.nextInt();
int head = 0;
int end = arr2.length - 1;
boolean isFlag1 = true;
while (head <= end) {
int mid = (head + end) / 2;
if (index == arr2[mid]) {
System.out.println("恭喜找到了,位置为:" + mid);
isFlag1 = false;
break;
} else if (arr2[mid] > index) {
end = mid - 1;
} else {
head = mid +1;
}
}
if (isFlag1) {
System.out.println("对不起,没有找到");
}
}
}
7、数组异常
(1)数组角标越界的异常:ArrayIndexOutOfBoundsException
(2)空指针异常:NullPointerException