1,什么是数组?
在广义上说,数组是一个容器,用来存储同一类的数据。同时,数组还是一种线性的数据结构。也就是说,数组在堆内存中是连续存放的。
而在java中,数组是一个类。且数组只定义了唯一的一个属性length,用来获取数组的长度。
2,怎样定义一维,二维数组?
实例化一维数组:
数据类型 [] 数组名 = new 数据类型[length];
数据类型 [] 数组名 = {数据,...};
实例化二维数组:
数据类型 [][] 数组名 = new 数据类型[row][column];
数据类型 [][] 数组名 = {{数据,...},...};
数据类型 [] 数组名 = new 数据类型[length];
数据类型 [] 数组名 = {数据,...};
实例化二维数组:
数据类型 [][] 数组名 = new 数据类型[row][column];
数据类型 [][] 数组名 = {{数据,...},...};
3,怎样使用一维,二维数组?
获取一维数组的元素总数:数组名.length
设置获取数组中某一个位置的元素:数组名[下标]
设置获取数组中某一个位置的元素:数组名[下标]
获取二维数组的行数:数组名.length
获取二维数组某一行有多少列:数组名[下标].length
获取二维数组的元素总数:数组名.length*数组名[下标].length
获取二维数组某一行有多少列:数组名[下标].length
获取二维数组的元素总数:数组名.length*数组名[下标].length
package Arry;
public class Text1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 初始化一维数组
*/
int age[] = new int[10];
String name[] = {"张三","李四","王五"};
/*
* 初始化二维数组
*/
char grade[][] = new char[5][6];
double number[][] = {
{12, 13.55},
{15, 23.1, 8.6},
{14, 22.6}
};
/*
* 一维数组的使用
*/
System.out.println("age数组的长度为:" + age.length);
System.out.println("name数组的长度为:" + name.length);
System.out.println("age数组的第三个元素值为:" + age[2]);
System.out.println("name数组的第三个元素值为:" + name[2]);
/*
* 二维数组的使用
*/
System.out.println("grade数组的行数为:" + grade.length);
System.out.println("number数组的行数为:" + number.length);
System.out.println("grade数组第三行有" + grade[2].length + "列");
System.out.println("number数组第三行有" + number[2].length + "列");
}
}
4,一维数组中数据的排序:
见下一篇博客《排序 Sorting(java实现)》
5,二维数组应用举例:
找出二维数组中的最大数据,并输出所对应的行数和列数:
package Arry;
import java.util.Random;
public class DoubleDimensionalArry {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arry[][] = new int[6][6];
int max = 0;
Random ran = new Random();
for(int r = 0;r < arry.length;r++){
for(int c = 0; c< arry[r].length;c++){
arry[r][c] = ran.nextInt(50); //0 - 49
System.out.print(arry[r][c] + " ");
}
System.out.println();
}
for(int r = 0;r < arry.length;r++){
for(int c = 0;c < arry[r].length;c++){
if(max < arry[r][c]){
max = arry[r][c];
r++;
c++;
}
}
}
for(int r = 0;r < arry.length;r++){
for(int c = 0;c < arry[r].length;c++){
if(max == arry[r][c]){
System.out.println("max = " + max);
System.out.println("在第" + r + "行,第" + c + "列");
}
}
}
}
}