1.数组的基本概念及作用
数组是相同数据类型元素的集合。
数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,
也可以存储引用数据类型。
2.数组的创建
2.1数组声明的两种方式:
数据类型 [ ] 数组名字 例如:int [ ]a;
数据类型 数组的名字[ ] 例如:int a [ ];
注意:
在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,
避免混淆a的数据类型。
2.2数组创建的三种方式 :
- 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值。
int[] ary0 = new int[10]; - 声明数组并分配内存,同时将其初始化。
int[] ary1 = new int[]{1, 2, 3, 4, 5}; - 与前一种方式相同,仅仅只是语法相对简略
int[] ary2 = {1, 2, 3, 4, 5};
2.3从另一个角度,数组创建可以分为动态和静态两种
动态创建数组(没有为元素赋值,可以结合for循环进行赋值)
char[] chAry = new char[10]
静态创建数组,在创建的时候,即为每个元素赋初值
int[] ary1 = new int[]{1, 2, 3, 4, 5};
2.4 数组的长度:length属性
int [] b1 = new int []{1,2,3,4,5,6,7};
System.out.println(b1.length);
上述代码块即实现了获取数组长度的功能。
3.数组的访问与迭代
数组元素的访问:
数组名字[索引] 例如:a[0],a[1];
注意:
• 数组的索引从0开始。
• 索引的数据类型是整型
• 索引最大值和数组长度始终差1
数组迭代的两种方式:
第一种:for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
//数组的迭代
for(int i =0;i<b1.length;i++){
System.out.println(b1[i]);
}
第二种:增强for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}
即:
for(int x:b1){
System.out.println(x);
}
4. 数组排序
4.1冒泡排序(Bubble Sort)
冒泡算法是一种简单的排序算法,其依次走过需要排序的数组,一次比较两个元素,依据其大小决定是否交换顺序。重复进行此流程直至没有需要交换的数据。
public class Test {
public static void main(String[] args) {
int []a={1,2,3,4,56,244,232,244,5325,34324,5235,213,2435,6534,2421,423,12,24};
int max;
for (int i = 0; i <a.length-1 ; i++) {
if (a[i]>a[i+1]){
max=a[i];
a[i]=a[i+1];
a[i+1]=a[i];
}
} System.out.println(Arrays.toString(a));
}
}
冒泡排序
例如以上代码块儿就实现了将一个乱序的数组依照从小到大的顺序排列输出。
4.2 选择排序(Selection Sort)
选择排序(Selection-sort)是一种简单直观的排序算法。
选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
5.二维数组
5.1 二维数组的定义:
数组的数组—二维数组的每一个元素是一个一维数组
例如;
int [][]a = {{1,2,3},{1,2,3},{1,2,3}};
5.2二维数组的声明:
int [][] a;
int a2[][];
5.3数组创建
int [ ][ ]a = new int[ ][ ]{{1,2,3},{1,2,3},{1,2,3}};
int [ ][ ] b = {{1,2,3},{1,2,3},{1,2,3}};
int [ ][ ] c = new int[3][5];
5.4 二维数组的迭代:
int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){
for(int j =0;j<b1[i].length;j++){
System.out.print(b1[i][j]);
}
}