Java入门篇——数组
前言:本文为我随书学习的笔记文章,只描述怎样做,不描述是什么。
1.一维数组
一维数组的使用分为三步:声明、初始化、访问;
1.1声明
语法格式:数据类型[] 数组名;
or 数据类型 数组名[];
例如:
1 int[] intArray; 2 int intArray[];
备注:Java中声明数组和c++不同的地方是声明数组时不指定数组的长度,所以声明数组时不会为数组各元素分配内存空间,仅在相应的栈内为这个引用变量分配空间。
1.2初始化
静态初始化例子:
1 int[] intArray = {1,2,3,4}; String[] stringArray = {"Hello","World"};
动态初始化例子:
1 int[] intArray = new int[50]; //或者 int intArray[] = new int[50]; 2 intArray[0] = 1; //为数组各元素赋值 3 intArray[1] = 2;
备注:无论是哪种初始化,上面的例子中,栈内存中的引用intArray,即数组名,指向数组的首元素的地址;
动态初始化会为各元素赋予对应变量类型的默认值,如int类型默认值为0,String类型默认值为Null;
1.3访问
访问方式:数组名[index]; //index为数组下标,可以为整型常数或表达式,从0开始
备注:Java对数组元素进行越界检查以保证安全性,一旦越界将抛出ArrayIndexOutOfBoundsException异常;
Java中每一个数组都有一个属性length指明它的长度,能有效地判断出数组的长度,使用方式为:数组名.length;
1.4实例 ArrayDemo.java
1 //该类实现倒叙遍历一维数组功能 2 public class ArrayDemo 3 { 4 public static void main(String[] args) 5 { 6 int i; 7 int[] a = new int[5]; 8 for(i=0; i<5; i++) 9 { 10 a[i] = i; 11 } 12 for(i=a.length-1; i>=0; i--) //如果是顺序遍历则为:for(i=0; i<=a.length-1; i++) 13 { 14 System.out.println("a[" + i + "]=" + a[i]); 15 } 16 } 17 }
2.多维数组
2.1声明
语法格式:数据类型 数组名[][];
or 数据类型[][] 数组名;
例子:
1 int intArray[][]; //或者 int[] [] Array;
2.2初始化
静态初始化例子:
1 int intArray[][] = {{1,2},{2,3},{3,4}}; //初始化了一个3行2列数组intArray
动态初始化例子:
1 int intArray[][] = new int[3][2]; 2 intArray[0][0] = 10; //为第一行第一列赋值 3 intArray[0][1] = 11;
初始化一个二维数组,且各行的列数不相等:
1 String s[][] = new String[2][]; //可以为每一维分配不同空间,但必须从最高维开始,例如执行此语句时,数组s包含s[0]和s[1] 2 s[0] = new String[2]; //分别对s[0]和s[1]分配空间 3 s[1] = new String[3];
2.3访问
语法格式:数组名[index1][index2]; //其中index1和index2为数组下标
备注:与一维数组一样,二位数组也有length属性,但要特别小心,使用“二维数组名.length”方式返回的是该二维数值的行数,使用“二维数组名[index1].length”返回的是该二维数组的
index1行的元素数(即该行的列数)。
3.数组拓展(为保证文章简洁,采用超链接方式,待编写)
3.1 foreach语句
3.2 java.util.Arrays类
3.3 字符串
3.3 容器