标签:数组排序 不能 data 它的 元素 ref 分析 包括 插入
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar;//首选方法
dataType arrayRefVar[];//效果相同,但不推荐
Java中使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arraySice];//定义一个什么类型的数组就new一个什么类型的数组
int[] number = new int[5];//定义一个int类型的数组,在这个数组中可以存放5个int类型的数据。
//也可以拆开来写
int[] number;//声明一个数组
number = new int[5];//创建一个数组
数组元素是通过索引访问的,数组索引从零开始。
int[] number = new int[5];
获取数组长度:
arrays.length
int[] number = new int[5];
System.out.println(number.length);//输出为5
二维数组的声明和创建
int[][] a = {{2,3},{5,4},{6,7,8}};//静态初始化
int[][] a = new int[2][5];//动态初始化
三维数组的声明和创建和二维数组基本一样,不同点就是多个 “[]”如下↓↓↓
int[][][] a = {{{2,3},{2,3,4}},{{2,3,4,5},{3,2,4}},{{1,2,3},{3,2}}};//静态初始化
int[][][] a = new int[2][3][4];//动态初始化
静态初始化
在数组定义的时候给它的元素赋值
int[] numbers = {1,2,3,4,5};
动态初始化
int[] numbers = new int[5];//这时数组元素已被默认初始化
//后面我们可以给数组元素赋值如:
numbers[0] = 3;
numbers[1] = 4;
默认初始化
请查看上条↑↑↑
我们给数组赋值,我们肯定要使用,比如要打印数组中所有的元素,肯定不会一个一个去打印吧,少的时候还可以接受,那比如说数组元素有几十个呢,就算你写出来了,代码也不够简洁,而且也费时费力。但是我们可以通过for循环来遍历数组,从而达到以上目的,具体代码如下。
for(int i = 0;i < array.length/*获取数组长度*/;i++){//注意:数组下标是从0开始,所以不可以写成i <= array.length
System.out.println(array[i]);//打印数组元素
}
当然,也可以使用增强型的for循环:
for(int array : array){ //不使用下标,适用于打印数组元素,但是不适用于操作数组元素
System.out.println(array);
}
应用的实例:我们需要打印出这个数组中的最大值。
int max = 0;
for(int i = 0;i < array.length; i++){
if(array[i] > max){
max = array[i];
}
}
System.out.println(max);
public class SparseArray {
public int[][] toSparseArray(int[][] array){
//获取非0个数
int sum =0;//创建一个计数器
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] != 0) {
sum++;
}
}
}
//转换为稀疏数组
int[][] sparseArray = new int[sum+1][3];
sparseArray[0][0] = array.length;
sparseArray[0][1] = array[0].length;
sparseArray[0][2] = sum;
int judge = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] != 0) {
judge++;
sparseArray[judge][0] = i;
sparseArray[judge][1] = j;
sparseArray[judge][2] = array[i][j];
}
}
}
return sparseArray;
}
//转换为普通数组
public int[][] toArray(int[][] array){
int[][] temperaryArray = new int[array[0][0]][array[0][1]];
for (int i = 1; i < array.length; i++) {
temperaryArray[array[i][0]][array[i][1]] = array[i][2];
}
return temperaryArray;
}
}
标签:数组排序 不能 data 它的 元素 ref 分析 包括 插入
原文地址:https://www.cnblogs.com/jeter/p/14727947.html