1.Java中的数组与C语言中的数组的不同
(1)声明数组时中括号的位置
(2)在Java中声明数组时,数组的长度不用给出
(3)在Java中二维数组中,每个行的列数可以不同
(4)在Java中数组空间的分配中,数组的长度可以为常量,也可以为变量
2 .数组
(1)声明: 类型 数组名[]; 类型[] 数组名;
(2)分配空间: 数组名 = new 类型[数组的长度];
(3)声明和空间分配可以结合 : 类型 数组名[] = new 类型[数组长度];
(4)数组元素赋值:
- 数组元素的下标从0开始,每个数组元素的值可以单独赋值,也可以在分配空间时使用{v1,v2,...}给各元素赋值
- 系统会自动给各数组元素赋初值,数值型的为0,字符型的为空字符,布尔型的为false
一维数组初始化:
int[] arr = new int[5]; //动态初始化
String[] arr1 = new String[]{"a","b","c","d"); //静态初始化
(5)数组元素引用:
数组元素引用时,下标不要越界,否则会出现ArrayIndexOutOfBoundsException
(6)数组的长度:数组名.length
(7)二维数组
声明时,第二维的长度可以给出,也可以不给出,但第一个[]必须给出,二维数组名.length的值为第一维的长度,第二维的长度数组名[i].length
二维数组初始化
int[ ] [ ] arr = new int [4] [3];//动态初始化1
int[ ] [ ] arr1 = new int[4] [ ] ;//动态初始化2
int [ ] [ ] arr2 = new int[ ] [ ] {(1,2.3),(4,5,6),(7,8)};//静态初始化
(8)默认初始值
- 整形:0
- 浮点型:0.0
- char: 0
- boolean :false
-
引用类型:null
(9)一维数组存储展示
//一维数组示例:
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
int a[]; //数组的创建: 数组名 = new 数组元素的类型[数组的长度];
a = new int[10]; //声明数组和创建数组可以一起完成:int a[] = new int[10]
Scanner in = new Scanner(System.in); //数组的长度:数组名.length
for(int i=0;i<a.length;i++) { //数组下标第一个元素是啊[0]
System.out.println("请输入第"+i+"个元素的值:");
a[i] = in.nextInt(); //依次输入
}
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" "); //依次输出
}
System.out.println();//换行
}
}
//二维数组示例
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
int n;
System.out.println("请输入二维数组的行数:");
Scanner input = new Scanner(System.in);
n = input.nextInt(); //输入二维数组的长度
int a[][] = new int [n][]; //声明一个二维数组
int count = 0; //声明一个变量
for(int i=0; i<a.length;i++) //为二维数组的每行设置行的长度
a[i] = new int[i+1];
for(int i=0; i<a.length;i++) { //为二维数组的每个元素赋初值
for(int j=0;j<=i;j++) {
a[i][j] = ++count;
System.out.printf("%4d",a[i][j]); //输出二维数组的值
}
System.out.println();
}
}
}
//二维数组的遍历
int [ ] [ ] arr = new int [ ] [ ] {(1,2,3),(4,5),(6,7,8)};
for (int i = 0; i < arr.length;i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}