一、数组的概念
数组是一组相关数据的集合,数组按照使用可以分为一维数组、二维数组、多维数组
二、数组的定义
元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; int[] a = new int[n];//定义大小为n的整型数组 Double[] b = new double[m];//定义大小为m的浮点型数组 注意: 1)如果数组初始化中不使用运算符new,不能将数组的定义与赋值分开,如以下书写方式是错误的: int[] arr; arr={1,2,3,4,5}; 此时初始化数组,必须将声明,创建,初始化都放在一条语句中个: int[] arr = {1,2,3,4,5}; 2)数组是一个固定长度的数据结构,一旦声明,便不能再修改。 3)array.length表示数组的容量,只要数组创建了,每一个索引被初始化为默认值。
三、foreach循环
java中一种功能很强大的循环结构,用来依次遍历数组中的所有元素。
public class TestArray { public static void main(String[] args) { double[] myList = {1, 2, 3, 4}; // 打印所有数组元素 for (double element: myList) { System.out.println(element); } } }
四、二维数组
1)二维数组的动态初始化:
typearrayName = new type[arrayLength1][arrylength2]
(type 可以为基本数据类型和复合数据类型,arraylenght1 和 arraylenght2 必须为正整数,arraylenght1 为行 数,arraylenght2 为列数。)
2)二维数组的遍历---两重for循环
for(int i = 0 ;i<arr.length;i++){ //遍历二维数组,遍历出来的每一个元素是一个一维数组
for(int j=0;j<arr[i].length;j++){//遍历对应位置上的一维数组
System.out.println(arr[i][j]);
}
}
3)二维数组的反转---头尾交换
for(int start = 0,end=arr.length-1;start<end;start++,end--){
int[] temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
4)杨辉三角(arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1])
//从控制台获取行数
Scanner s = new Scanner(System.in);
int row = s.nextInt();
//根据行数定义好二维数组,由于每一行的元素个数不同,所以不定义每一行的个数
int[][] arr = new int[row][];
//遍历二维数组
for(int i = 0; i < row; i++){
//初始化每一行的这个一维数组
arr[i] = new int[i + 1];
//遍历这个一维数组,添加元素
for(int j = 0; j <= i; j++){
//每一列的开头和结尾元素为1,开头的时候,j=0,结尾的时候,j=i
if(j == 0 || j == i){
arr[i][j] = 1;
} else {//每一个元素是它上一行的元素和斜对角元素之和
arr[i][j] = arr[i -1][j] + arr[i - 1][j - 1];
}
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
5)数组拷贝
int copyarr = Arrays.copyOf(arr,arr.length);6)数组排序
int[] a = new int[100]; Arrays.sort(a);