数组的定义:数据类型[] 变量名 = 初始值;
定义方法有三种
//数组声明方式一
//int[] array = new int[数组的元素个数];
// 数组声明方式二(长度和元素都给了)
// int[] array = new int[] { 1, 23, 6, 7 };
// 数组的声明方式三(语法糖)
// int[] array1 = { 134, 5, 6, 67, 4 };
扫描二维码关注公众号,回复:
919449 查看本文章
说到数组牵扯到堆内存和栈内存,下面简单讲一下堆内存和栈内存;
例子:
public static void fun1() {
int a = 10;
}
public static void main(String[] args) {
fun1();
int a =5;
int[] array = new int[5];// new 表示是在堆内存开辟的空间
}
数组的反转
public class 数组Demo04 { public static void main(String[] args) { int[] array = new int[] {1,2,3}; chngeArray(array); } public static void chngeArray(int[] array) { //交换的次数----数组的长度/2; //array[0]---array[length - 1-0]; //array[1]---array[length - 1-1]; //array[i]---array[length - 1-i]; int sum =array.length/2; for (int i = 0; i < sum; i++) { int tem = array[i]; array[i] = array[array.length-1-i]; array[array.length-1-i]=tem; } } }
数组的冒泡排序
核心思想:相邻的数比较 然后换位
public static void main(String[] args) { int[] array = { 3, 2, 5, 1 }; // 外循环控制一共比了多少趟 // 内循环控制一趟比了多少次 for (int i = 0; i < array.length - 1; i++) { for (int j = 0; j < array.length - 1 - i; j++) { // 判断大小 相邻 // 内循环减1 防止数组越界; // 内循环减i 循环一次确定一个数 每次少比一次; if (array[j] < array[j + 1]) { // 交换 int tem = array[j]; array[j] = array[j + 1]; array[j + 1] = tem; } } } System.out.println(Arrays.toString(array)); }
数组的选择排序
核心思想:选择一个数(第一个数)和其他数进行比较 交换;
下面举例说明
private static void fun1() { int[] array = {3,2,5,1}; for (int i = 0; i < array.length-1; i++) { for (int j = i+1; j < array.length; j++) { //用第0个数 和剩下的每一个比较; //i=0 j 0 1 2 3 //i=1 j 1 2 3 //i=2 j 2 3 if (array[i]>array[j]) { int tem =array[i]; array[i]=array[j]; array[j]=tem; } } } }
二维数组的定义和遍历
二维数组(容器)
保存多个相同类型的一位数组
int[][] 数组名 = 初值
遍历二维数组
public static void main(String[] args) { // 声明一个二维数组 // 这个二维数组中有2个一位数组 每个一位数组中有3个元素; int[][] arrayArray = new int[2][3]; // arrayArray.length 表示一位数组的长度 System.out.println(arrayArray[1]); // 声明方式二 int[][] array = new int[][] { { 1, 11, 111 }, { 2, 22, 222 } }; //遍历 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j]+","); } System.out.println(); } }
总结:
1.数组是引用函数 引用函数传递的是地址
2.想到数组就要想到遍历;遍历就要想到循环;
3.数组可以有一维,二维,多维.....;
4.数组的几个应用:排序 求和 平均值 最值 查找;
5.