Day06
数组
public class ArrayDemo01 {
public static void main(String[] args) {
int[] num = new int[10];
num[0] = 1;
num[1] = 2;
num[2] = 3;
num[3] = 4;
num[4] = 5;
num[5] = 6;
num[6] = 7;
System.out.println(num[5]);
System.out.println(num[7]);
int sum = 0;
for (int i = 0;i< num.length;i++){
sum = sum + num[i];
}
System.out.println(sum);
}
}
-
静态初始化
//静态初始化:创建+赋值
int[] a = {1,2,3,4,5,6};
-
动态初始化
//动态初始化:包含默认初始化
int[] b = new int[10];
b[0] = 5;
b[1] = 2;
数组的四个基本特点
-
其长度是确定的。数组一旦被创建,它的大小就是不可改变的
-
其元素必须是相同类型
-
数组中元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
public class ArrayDemo02 {
public static void main(String[] args) {
int []arrays = {1,2,3,4,5,6};
int[] reverse = reverse(arrays);
printArrays(reverse);
}
//翻转数组元素
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for (int i = 0,j=arrays.length-1;i<arrays.length;i++,j--){
result[j] = arrays[i];
}
return result;
}
//打印数组元素
public static void printArrays(int[] arrays){
for (int i = 0;i<arrays.length;i++) {
System.out.print(arrays[i]+" ");
}
}
}
冒泡排序
(总共有8大排序)
两层循环,外层冒泡轮数,里层依次比较。
时间复杂度O(n2)
稀疏数组
public class ArrayDemo04 {
public static void main(String[] args) {
int[][] array = new int[11][11];
array[1][2] = 1;
array[2][3] = 2;
int sum = 0;
for (int[] ints : array) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
if (anInt != 0) {
sum++;
}
}
System.out.println();
}
System.out.println("=========================================");
int count = 0;
int[][] array2 = new int[sum + 1][3];
array2[0][0] = 11;
array2[0][1] = 11;
array2[0][2] = sum;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] != 0) {
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array[i][j];
}
}
}
for (int[] ints : array2) {
for (int anInt : ints) {
System.out.print(anInt + "\t");
}
System.out.println();
}
System.out.println("=========================================");
int[][] array3 = new int[array2[0][0]][array2[0][1]];
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}
for (int[] ints : 