1. Math类API,产生随机数;
double random = Math.random(); [0,1) 包括0,无限接近于1,但是达不到1
2. 数组概念
多个相同数据类型的数据按照一定顺序排列的集合;
数组读操作速度快,插入或删除需要将后面元素重新移动位置。
3. 数组定义格式和初始化
数据类型[][] 变量名 = new 数据类型[m][n];
数据类型[][] 变量名 = new 数据类型[][]{{元素一,元素二},{元素一,元素二}};
格式:数据类型[] 数组名;
数据类型 数组名[];
初始化:静态初始化,初始值为0;
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,}
数据类型[] 数组名 = {元素1,元素2,...};
动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度];
-
注意事项:索引越界异常,空指针异常。
-
foreach(数据类型 变量名 :数组或集合){}
-
二维数组格式
4.案例
数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
思路:
分析:
把0索引和arr.length-1 交换
把1索引和arr.length-2 交换
把2索引和arr.length-3 交换
只要做到arr.length/2 即可 ,只做一半,不然又调回来了;
public static void main(String[] args) {
//1.元素反转
int[] arr = {1,2,3,4,5,6};
for (int i = 0; i <= arr.length / 2; i++) {
int temp;
// temp = arr[i];
// arr[i] = arr[arr.length -1 -i];
// arr[arr.length - 1 -i] = temp;
temp = arr[arr.length -1 -i];
arr[arr.length -1 -i] = arr[i];
arr[i] = temp;
}
//重新遍历
// for( 数据类型 变量名 : 数组或集合)
for (int a: arr) {
System.out.println(a);
}
System.out.println("---------------------");
//2.二种方式,创建一个新数组,反遍历存储在新数组中
int[] arr2 = new int[arr.length];
for (int i = arr.length - 1; i >= 0 ; i--) {
arr2[arr2.length-i-1] = arr[i];
}
for (int b: arr2) {
System.out.println(b);
}
}
二维数组遍历
public static void main(String[] args) {
int[][] arr = {{1,2,3},{3,2,1},{4,5,6}};
System.out.println(arr);
//第一个一维数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[0][i] + "\t");
}
//第二个一维数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[1][i] + "\t");
}
//第三个一维数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[2][i] + "\t");
}
System.out.println("-----------------");
//双重for循环遍历
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}