一.数组的概述
1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
2.数组相关的概念:
数组名
元素名
角标、下标、索引
数组的长度:元素的个数
3.数组的特点:
数组是有序排列的
数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型(数组充当元素)
创建数组对象会在内存中开辟一整块连续空间
数组的长度一旦确定无法改变
4.数组的分类:
按照维数:一维数组、二维数组,。。。
按照数组元素类型:基本数据类型元素的数组,引用数据类型元素的数组
5.一维数组的使用
①一维数组的声明和初始化
public class ArrayTest{
public static void main(String[] args){
int num;//声明
num=10;//初始化
int id=100;//声明+初始化
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids=new int[]{
100,200,300,400,500};
//动态初始化:数组的初始化和数组元素的赋值分开进行
String[] names=new String[5];
names[0]="逮虾户";
}
}
②如何调用数组的指定位置的元素:通过角标的方式调用
//数组的角标(或索引)从0开始,到数组的长度-1结束。
String[] names=new String[5];
names[0]="张三";
names[1]="张三";
names[2]="张三";
names[3]="张三";
names[4]="张三";
//names[5]="张三",因为角标到数组长度-1,所以会报错
③如何获取数组的长度
public class ArrayTest{
public static void main(String[] args){
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids=new int[]{
100,200,300,400,500};
//动态初始化:数组的初始化和数组元素的赋值分开进行
String[] names=new String[5];
//length:属性
System.out.println(names.length);
System.out.println(ids.length);
//数组的length和字符串的length()有些区别
//length是属性不用加括号,而字符串的length()是方法
}
}
④如何遍历数组
public class ArrayTest{
public static void main(String[] args){
int[] ids;//声明
//静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids=new int[]{
100,200,300,400,500};
//动态初始化:数组的初始化和数组元素的赋值分开进行
for(int i=0;i<ids.length;i++){
System.out.println(ids[i])
}
}
}
⑤数组元素的默认初始化值
数组元素是整型: 0
数组元素是浮点型: 0.0
数组元素是char型: 0或‘\u0000’,而非‘0’
数组元素是boolean型: false
数组元素是引用数据类型: null
引用数据类型:字符串或数组充当数组元素
6.二维数组的使用:
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr=new int[4][3];
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等
①二维数组的声明和初始化
public class ArrayTest2{
public static void main(String[] args){
int[] arr=new int[]{
1,2,3};//一维数组
int[] ar={
1,2,3,4,5,6};
//静态初始化
int[][] arr1=new int[][]{
{
1,2,3},{
4,5},{
6,7,8,9}};
//动态初始化1
String[][] arr2=new String[3][2];
//动态初始化2
String[][] arr2=new String[3][];
//其他写法
int[] arr4[]=new int[][]{
{
1,2,3},{
4,5,6,7},{
8,9}}
int[] arr5[]={
{
1,2,3},{
4,5,6,7},{
8,9}}
}
}
②.如何调用数组的指定位置的元素
System.out.println(arr1[0][0]);//1
System.out.println(arr2[1][1]);//null
③.获取数组的长度
System.out.println(arr4.length);//3
System.out.println(arr4[0].length);//3
System.out.println(arr4[1].length);//4
④.如何遍历二维数组
for(int i=0;i<arr4.length;i++){
for(int j=0;j<arr4[0].length;j++){
System.out.print(arr4[i][j]+" ");
}
}
⑤数组元素的默认初始化值:
针对于初始化方式一:比如:int[][] arr=new int[4][3];
外层元素的初始值为:地址值
内层元素的初始值为:与一维数组初始化情况相同
针对于初始化方式二:比如:int[][] arr = new int[4][];
外层元素的初始值为:null
内层元素的初始值为:不能调用,否则报错。