数组
//声明数组 int[] a; //创建数组 int[] a=new int[10]; //静态初始化 创建+赋值 int[] a={1,2,2,4,5,8} //动态初始化 包含默认初始化 int[] a=new int[10]; a[0]=5; //冒泡排序 public void maoPao() { int[] a = {5, 8, 7, 9, 5}; int sum = 0; for (int i = 0; i < a.length - 1; i++)//需要排序的次数 { for (int j = 0; j < a.length - 1 - i; j++)//每排序一次,就减少一次 { if (a[j] > a[j+ 1]) { sum = a[j]; a[j] = a[j + 1]; a[j +1] = sum; } } } for (int k : a) { System.out.print(k); System.out.print("\t"); } }
数组的默认初始化
-
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也会被按照实例化变量同样的方式
被隐式初始化(相当于没有被初始化的都为0)
数组的特点
-
长度是确定的,一旦创建不可改变
-
其元素必须是相同类型,不允许混合类型
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属于引用类型,java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型
数组对象本身都在堆中
二维数组
int a[][]=new int[2][5]; int[][] a={{1,2},{3,4},{4,5}};
稀疏算法
int[][] a=new int[11][11]; a[1][0]=4; a[2][3]=5; a[7][8]=6; a[0][3]=7; int sum=0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if(a[i][j]!=0){ sum++; if(sum==1) { System.out.println("i " + "j " + "val"); } System.out.println(i+" "+j+" "+a[i][j]); } } }
Arrays类
包含数组中的各种方法(排序,搜素等)
int[] a={1,8,2,5,6}; //打印数组元素Arrays.toString() System.out.print(Arrays.toString(a)) //排序Arrays.sort(a); System.out.print(Arrays.sort(a))