Java数组
一、一维数组
语法格式 数据类型[ ]数组名; 或 数据类型 数组名[ ];
1.数组的创建(是JVM在堆空间(Heap)中为数组元素分配内存空间并返回地址的过程)
语法格式: 数组名 = new 数组元素类型[元素个数];
数组下标越界异常: IndexOutOfBoundException
2.数组静态初始化、
&emsp 数组类型 [] 数组名 = {初值表};
3.数组元素初始化
在创建数组时JVM会根据数组元素的类型自动赋值:
数值类型默认值为0;
Boolean类型默认值为false;
引用类型默认值为null;
练习
import java.util.Arrays;
public class ArrayTest {
public static void main(String[] args) {
//1.数组的定义:数组的声明和动态初始化
int[] ia = null;
ia = new int[3];
//2.动态初始化
int[] ib = new int[3];
int ic[] = new int[3];
//3.自定义初始化
ia[0] = 1;
ia[1] = 2;
ia[2] = 3;
//4.读取数组的长度
System.out.println(ia.length);
//5.数组的静态初始化
double[] da = {3.14, 2.78, 3.45};
//6.用for循环实现数组的遍历
for (int i = 0; i < ia.length; i++) {
System.out.println(ia[i]);
}
//7.用for增强数组实现数组的遍历,可以有效防止下标越界
for (double d : da) {
System.out.println(d);
}
//8.数组较少时可用Arrays.toString()输出,数组转换为字符串
System.out.println(Arrays.toString(ia));
}
}
数组的排序
1.冒泡排序算法。 2.java.util.Arrays.sort(int[ ]a)对数组进行升序排序。
public class BubbleSort {
public static void bubble(int a[]) {
int temp;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
}
二、二维数组
1.语法格式
数据类型[ ][ ] 数组名
2.二维数组的创建。
数组名 = new 数据类型[ 元素个数][ ];
在声明锯齿数组时至少要给出第一维的长度即确定行数。
2. 数组元素的初始化,默认赋值同一维数组一样。
3. 二维数组的静态初始化
数据类型 数组名[ ] [ ] ={{初值表},{初值表},…}
4. 二维锯齿数组的应用
例子:int [][] ia ={{1,2,3,4},{5,6},{7,8,9}};
ia.length代表行数3.
a[0].length代表第0行的元素个数4.
a[1].length代表第1行的元素个数2.
a[2].length代表第2行的元素个数3.
练习
int[][] ia = {{1, 2, 3, 4}, {5, 6}, {7, 8, 9}};
for (int i = 0; i < ia.length; i++) {
for (int j = 0; j < ia[i].length; j++) { //每一行的列数可能不同
System.out.println(ia[i][j]);
}
}