目录
1 数组
1.1 数组的使用
1.1.1 动态初始化
Ⅰ、 数据类型 数组名[] = new 数据类型[大小]
int a[] = new int[5];
Ⅱ、 数据类型 数组名[]; 数组名 = new 数组类型[大小];
int a[];
a = new int[5];
1.1.2 静态初始化
数据类型 数组名[] = {元素值, 元素值, ...}
int arr[] = {1, 2, 3};
1.2 数组使用注意事项和细节
1)数组十多个相同类型数据的组合,实现对这些数据的统一管理
2)数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型,但不能混用。
3)数组创建后若没有赋值,则有默认值
int 0、short 0、byte 0、long 0、double 0.0、float 0、char \u0000、boolean false、String null
4)使用数组的步骤 ①声明数组并开辟空间、②给数组各元素赋值、③使用数组
5)数组的下标是从0开始的。
6)数组下标必须在指定范围内使用,否则报异常。
7)数组属于引用数据类型,数组型数据是对象。
1.3 数组赋值机制
1)基本类型赋值,这个值就是具体的数据,而且相互不影响。
int n1 = 2;
int n2 = n1;
2)数组在默认情况下是引用传递,赋的是地址
1.4 数组反转
public class Test2{
public static void main(String[] args){
int temp = 0;
int[] arr = {11, 22, 33, 44, 55};
for(int i = 0,j = arr.length - 1; i < arr.length / 2; i++,j--){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
1.5 数组拷贝
public class Test2{
public static void main(String[] args){
int[] arr1 = {1, 2, 3};
int[] arr2 = new int[arr1.length];
for(int i = 0; i < arr1.length; i++){
arr2[i] = arr1[i];
}
for(int i = 0; i < arr1.length; i++){
System.out.print(arr2[i] + " ");
}
}
}
1.6 数组添加/扩容
public class Test2{
public static void main(String[] args){
int[] arr1 = {1, 2, 3};
int[] arr2 = new int[arr1.length + 1];
for(int i = 0; i < arr1.length; i++){
arr2[i] = arr1[i];
}
arr2[arr1.length] = 4;
arr1 = arr2;
for(int i = 0; i < arr1.length; i++){
System.out.print(arr2[i] + " ");
}
}
}
1.7 冒泡排序
public class Test2{
public static void main(String[] args){
int[] arr1 = {24, 69, 80, 57, 13};
for(int i = 0; i < arr1.length - 1; i++){
int temp = 0;
for(int j = 0; j < arr1.length - i - 1; j++){
if(arr1[j] > arr1[j + 1]){
temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
for(int i = 0; i < arr1.length; i++){
System.out.print(arr1[i] + " ");
}
}
}
2 二维数组
2.1 二维数组的使用
2.1.1 动态初始化
1)语法:类型 [] [] 数组名 = new 类型[大小] [大小]
int[][] a = new int[2][3];
2)先声明:类型 数组名[] [];
再定义(开辟空间) 数组名 = new 类型[大小] [大小]
int[][] b;
b = new int[2][3];
3)动态初始化-列数不确定
int[][] c = new int[3][];
for(int i = 0; i < c.length; i++){
c[i] = new int[i];
}
2.1.2 静态初始化
类型 数组名[] [] = {{值1, 值2, ...}, {值1, 值2, ...}, {值1, 值2, ...}};
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
2.2 打印杨辉三角
public class Test2{
public static void main(String[] args){
int n = 5;
int[][] a = new int[n][];
for(int i = 0; i < n; i++){
a[i] = new int[i + 1];
for(int j = 0; j < a[i].length; j++){
if(j == 0 || j == a[i].length-1){
a[i][j] = 1;
} else{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
System.out.print(a[i][j] + " ");
}
System.out.println();
}
}
}
2.3 二维数组使用细节和注意事项
1)声明方式
int[][] y 或者 int[] y[] 或者 int y[][]
2)二维数组实际是由多个一维数组组成,它的各个一维数组的长度可以相同,也可以不同。