Java中的数组
第一节:数据的概念
数组是一组连续的存储空间,能存储多个相同类型的值。
第二节:数组的声明和赋值
方式一: 先声明 后初始长度
数据类型[] 数组名;
数组名 = new 数据类型[数组长度];
方式二:
数据类型[] 数组名= new 数据类型[数组长度];
方式三: 在创建数组的同时,初始化元素值
数据类型[] 数组名= new 数据类型[]{元素值1…};
简化写法:
数据类型[] 数组名 ={元素值1…}
特点: 长度是固定的。
数据类型是相同的。
第三节:数组的下标
下标: 也叫角标 或者 索引 index 是 数组的连续空间的一个别名。从0下标开始表示第一个。
一个数组的最大下标,是数组的长度-1.
数组的访问(赋值或取值) 格式 : 数组名[下标]
特别注意:数组的下标是从0开始。
数组的异常:当访问数组时,如果下标超过数组的边界 “ArrayIndexOutOfBoundsException”; 角标越界异常
第四节:数组的遍历
//取值 for 遍历该数组
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println(Arrays.toString(数组名));
//for each
for(int a:数组名){
System.out.println();
}
第五节:内存结构前瞻
内存 初探: 分 为2种
- 栈
- 基本数据类型
- 作为参数,只是传递 的值(该值的副本) ,不影响原数值。
- 堆
- 引用数据类型
- 作为参数,传递时地址值,此时操作的就是同一个堆中的对象。会影响原数值。
第六节:数组的排序
- 冒泡排序 相邻的两元素比较大小(如果前元素大于后元素就交换位置),每一次都会把比较后的最大值落在后面。
for(int i =0;i<a.length-1;i++){
boolean flag=true;
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=false;
}
}
if(flag){
//如果内循环执行一圈没有出现交换,则排序完成,flag还是true。
break;
}
}
- 选择排序 把第一位和其他所有的进行比较,只要比第一位小的,就 换到第一个位置来
比较完后,第一位就是最小的
然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来
比较完后,第二位就是第二小的
for(int i=0;i<a.length-1;i++){
for(int j =i;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
第七节:二维数组
概念:一维数组中的一维数组,数组中的元素还是数组。
- 二维数组 表示出来 行和列 。
- 二维 数组中访问元素 数组名 【行下标】【列下标】
内存结构图: