一、重点知识点:
1.一维数组
①掌握数组的长度
②掌握一维数组的声明、创建、初始化
③数组的常见错误
(1)ArrayIndexOutOfBounderException ---数组下标越界
int arr [ ] =new int [5];
System.out.prinln( a[5] );
(2)NullPointerException---空指针
int a [ ] =null;
int a [ 0 ] = 1;
System.out.println( a [ 0 ] );
2.多维数组
①掌握二维数组的声明,创建,初始化
②理解数组的复制
③理解数组的排序
二、一维数组
1.数组的定义和创建
定义:
①数组可以看成是多个相同类型数据的组合,实现对这些数据的统一管理
②数组中的每一个数据-------数组中的一个元素。
数组中的数据可以是任意数据类型,包括基本数据类型和引用数据类型
③数组中元素的个数,称为数组的长度
Java语言中声明数组时不能指定其长度 例:int a [5] //非法
创建:
①创建数组的步骤
声明 int a[ ] 或 int [ ] a
给内存分配存储空间 a=new int [ ]
给数组赋值:静态赋值,动态赋值
也可以一步完成:
数组类型 数组名 [ ] 或 数组类型 [ ] 数组名
int a[ ] = new int [ ] {5,7,9,8}
2.数组的初始化:在创建数组同时就为数组元素分配空间并赋值
①静态方法
数组类型 数组名 [ ]={元素1,元素2,......} 例:int a [ ]={1,2,3,4,5};
数组类型 数组名 [ ]=new 数据类型 [ ]{元素1,元素2,......} 例: int a [ ]=new int [ ]{1,2,3,4,5}
②动态方法
int arr [ ] =new int [5];
arr [0] = 1;
arr [1] = 2;
arr [2] = 3;
arr [3] = 4;
arr [4] = 5;
System.out.println( arr[5] ); //当下标为5时,报错:ArrayIndexOutOfBoundsException ----数组下标越界异常
3.数组的属性(数组长度的属性是length,没有length方法)
数组的长度(length)必须>=0;
length为只读;
利用length遍历数组;
三、多维数组
1.多维数组的创建
数组类型 数组名[ ][ ] 或 数组类型[ ][ ] 数组名 或 数组类型[ ] 数组名 [ ]
注意:Java中没有整整的多维数组,只有数组的数组;Java中多维数组不一定是规则矩阵形式 如:锯齿数组
2.多维数组的初始化
数组类型 数组名[ ][ ]={{元素1,元素2,...},{元素10,元素11....}} 或 数组类型 数组名[ ][ ]= new 数据类型[ ][ ]{{元素1,元素2.....},{元素10,元素11.....}}
注:二维数组的行数=数组的长度
四、数组常见操作:
利用循环语句和数组下标
数组的循环遍历----需求:一次输出数组中所有元素,之间用逗号隔开 //for(int i:arr){...}
package secondday.base;
public class Class01{
public static void main(String [] args){
String arr[]=new String[]{"red","yellow","blue","purple"};
printarray(arr);
}
public static void printarray(String [] arr){
for(int i=0;i<arr.length;i++){
if(i>0){
System.out.println(","+arr[i]);
}
else{
System.out.println(arr[i]);
}
}
}
}
五、数组的复制和排序
① 数组复制使用System.ArrayCopy[src,srcPos,destPost,length];
src:原数组名字
srcPost:原数组的起始位置
dest:目标数组
destPost:目标数组的起始位置
length:要复制的数组长度
② 数组排序使用Array.sort()方法
冒泡排序法:是一种简单的排序算法,它重复地走访过要排序的数组,一次
比较两个元素,如果他们的顺序错误九把他们交换过来,走访数组的工作是重复地进行直到不再需要进行交换。
冒泡排序地口诀:N个数字来排队,两两相比小靠前,外层循环N-1,内层循环N-1-i,内层循环控制轮数,外层循环空值次数