数组的基本格式
//先定义一个数组的类型,再创建数组的空间。 int num[]; num[]=new int[10];//这里创建10个数组 //或者是将其合并在一起写 int num[]=new int[10];
例子:
package com.method;
public class Demo07 {
public static void main(String[] args) {
// 或者是
// int[] num = new int[10];
int num [];
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;
num[7]=8;
num[8]=9;
num[9]=10;
//令所有数相加。
int resout = 0;
for (int i = 0; i < num.length; i++) {
resout = resout+ num[i];
}
System.out.println(resout);
}
}
静态初始化以及动态初始化
//静态初始化
int[] num = {1,2,3,4,5};
//动态初始化
int[] num;
num=new int[5];
静态初始化在创建num这个数组时,已经定义了数组元素的值。
但是动态初始化中,创建了数组的五个元素后,元素的值并未确定,成为动态初始化,此时元素默认值为0.
稀疏数组
在二维数组中,会存在以下情况,存在很多为“0”的元素,而非零元素则不多。
如果,将其中的非零元素单独记录出来,则可以达到节省空间的作用。
例子存在那么一个数组:a
public class Demo13 {
public static void main(String[] args) {
//一个11行11列的数组,
int[][] a = new int[11][11];
a[1][1] =1;
a[2][2] =2;
for (int[] ints : a) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println('t');
}
}
}
现在将这个数组转换为稀疏数组,(拓展:如何将稀疏数组还原?)
package com.method;
public class Demo13 {
public static void main(String[] args) {
int[][] a = new int[5][6];
a[1][1] =1;
a[2][2] =2;
for (int[] ints : a) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println('t');
}
//创建一个稀疏数组,用来储存数组a的数据。
//第一步:获取稀疏数组必要的参数:不为零的值的个数。
int num =0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j] != 0){
num++;
}
}
}
int[][] b =new int[num+1][3];
b[0][0]=5;
b[0][1]=6;
b[0][2]=num;
//第二步:获取不为零的数的行位置,列位置,以及值。将其填入稀疏数组b当中。
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j] != 0){
count++;
b[count][0]=i;
b[count][1]=j;
b[count][2]=a[i][j];
}
}
}
//第三步,输出稀疏数组b。
System.out.println("-----------------------------");
for (int[] ints : b) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println('t');
}
//拓展:如果将这个稀疏数组解压,如何操作。
System.out.println("-----------------------------");
//1.利用稀疏数组b的数据,创建新数组c
int[][] c = new int[b[0][0]][b[0][1]];
for (int i = 1; i < b.length; i++) {
for (int j = 0; j < b[i].length; j++) {
c[b[i][0]][b[i][1]]=b[i][2];
}
}
//2.输出还原数组c
System.out.println("-----------------------------");
for (int[] ints : c) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println('t');
}
}
}
最终的输出结果:



