数组
数组的基本概念
1.数组是相同数据类型元素的集合
2.数组本身是引用数据类型,即对象。但是数组不仅可以存储基本数据类型,也可以存储引用数据类型。
3.数组内部可以划分多个空间,且这些空间是连续的,一旦空间数量确定,就不能更改。
数组声明语法
数据类型 名称 [];
数据类型 [] 名称;
建议使用第二种,防止混淆。
int a,d[]; //a是整数,d是数组 int [] b,c; //b,c都表示数组
数组的创建
数组创建的三种方式:
声明数组的同时,根据指定的长度分配内存,但数组中元素都为默认的初始化值。
int[] ary0 = new int[10];
声明数组并分配内存,同时将其初始化
int[] ary1 = new int[]{1, 2, 3, 4, 5};
与上一种方法相同,仅仅只是语法相对简化。、
int[] ary2 = {1, 2, 3, 4, 5};
数组创建也可分为动态和静态
动态创建数组(没有为元素赋值,可以结合for循环进行赋值)
char[] chAry = new char[10];
静态创建数组,在创建的时候,即为每个元素赋值
int[] ary1 = new int[]{1, 2, 3, 4, 5};
数组的长度:length属性。
int [] b1 = new int []{1,2,3,4,5,6,7}; System.out.println(b1.length);
数组的访问与迭代
数组元素的访问:
数组名字[索引]
a[0],a[1];
注意 :
数组的索引从0开始
索引的数据类型是 int型
索引最大值和数组长度始终差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循环
for(int x:b1){ System.out.println(x); }
第二种:增强for循环
int [] b1 = new int []{1,2,3,4,5,6,7};
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}
数组排序
冒泡排序
import java.util.Arrays; /* 冒泡排序实例,冒泡排序是 每一次取出相邻的两个元素进行比较,把较大值向后移动(升序排序) */ public class Demo4 { public static void main(String[] args) { int [] a ={1,2,3,4,5,6,7,8}; /* 6 1 2 3 4 5 6 5 6 5 4 6 5 4 3 2 1 */ for(int i=0;i<a.length-1;i++) //控制循环的次数,即每轮循环的次数 { for(int j=0;j<a.length-i-1;j++) //控制每轮循环的次数 { if(a[j]<a[j+1]) { int t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } } System.out.println(Arrays.toString(a)); } }
选择排序
import java.util.Arrays; /* 选择排序:假设第一个元素为最大值,将第一个元素与之后的每一个元素进行比较,符合规则的,将两者进行互换。 1 2 3 4 5 5 1 2 3 4 5 4 1 2 3 5 4 3 1 2 5 4 3 2 1 */ public class Demo5 { public static void main(String[] args) { int [] a ={1,2,3,4,5}; for(int i=0;i<a.length-1;i++) { for(int j=i+1;j<a.length;j++) { if(a[j]>a[i]) { int t =a[j]; a[j]=a[i]; a[i]=t; } } } System.out.println(Arrays.toString(a)); } }
二维数组的定义
数组的数组,二维数组的每一个元素是一个一维数组。
二维数组的声明
int [][] a; int a2[][];
二维数组的创建
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]; //定义了一个整型的二维数组 ,这个二维数组有3 个一维数组,每一个一维数组包含5个元素
二维数组的迭代
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]); } }
debug(调试)