文章目录
一、数组是什么?
- 数组(array)是具有相同数据类型的元素的组合的集合,可以使用共同的名字来应用它。
- 数组可以被定义为任何类型,可以是一维或多维。
特别的,数组中的元素是要通过下表来访问它。
二、数组的特点
- 是相同数据类型的元素集合。
- 数组中的元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
- 每个数组元素用整个数组的名字和它在数组中的顺序位置来表达。
定义形式一般如下:
int arr[] = new int[10];
int []arr = new int[10];
int[] arr = new int[10];
数组元素类型 数组名[];
数组元素类型[] 数组名;
数组元素类型 []数组名;
或者写为另一种形式:
int arr[] = null;
arr = new int [10];
int []arr = null;
arr = new int[10];
int[] arr = null;
arr = new int[10];
1.数组的静态初始化
代码如下:
1.
//An improved version of the previous program.
class AutoArray
public static void main(String[] args) {
int month_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31, 30, 31};
System.out.println("April has "+ month_days[3] + " days.");
}
2.
public class Demo01 {
public static void main(String[] args) {
int[] nums;//声明一个数组
nums = new int[10];//这里可以存储10个数据
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
nums[4] = 5;
nums[5] = 6;
nums[6] = 7;
nums[7] = 8;
nums[8] = 9;
nums[9] = 10;
//给数组中的元素赋值
System.out.println(nums[9]);
//计算所有元素的和
int sum = 0;
for (int i = 0; i < nums.length; i++){
sum = sum + nums[i];
}
System.out.println("总和为"+sum);
}
}
注意点:
- Java 严格地检查已保证不会意外地存储或引用在数组范围以外的值。
- Java 的运行系统会检查以确保所以的数组下标都在正确的范围以内(在这方面,Java 与 C 和 C++ 在根本上不同)
- 在Java语言中的声明数组时,无论用何种方式定义数组,都不能指定其长度,例如,下面的定义将是非法的。
int ia[5]; //编译时将出错
三、多维数组
1.多维数组
定义
多维数组实际上是数组的数组,但是这些数组在形式和行为上并不完全相同。
1.下面语句定义了一个名为 twoD 的二维数组变量:
int twoD[][] = new int[4][5]
代码示例:
public class TwoDArray {
public static void main(String[] args) {
int twoD[][] = new int[4][5];
int i, j, k = 0;
for (i = 0; i < 4; j++) {
twoD[i][j] = k;
k++;
}
}
for (i = 0; i <4; i++){
for (j = 0; j < 5; j++) {
System.out.println(twoD[i][j] + " ");
}
System.out.println();
}
}
四、数组操作的相关方法
下面介绍其中两个数组操作的相关方法:
1.使用System.arraycopy()方法复制数组
System.arraycopy(sourse, 0, dest, 0, x);
该语句的意思是:复制源数组中从下标0开始的x个元素到目的数组,从目标数组的下标0所对应的位置开始存储。
示例程序:
public class example_08 {
public static void main(String[] args) {
int aLength = 2;
int[] arryA = new int[]{0, 1, 2, 3, 4, 5, 6, 7};
int[] arryB = new int[]{33, 44, 55};
System.arraycopy(arryA, 0, aLength, 0, 2);
}
}
参考运行结果:
arrayB: 0, 1, 55
注意:
复制的数组的元素的个数要小于目的数组的长度,否则会产生异常。
2.使用Arrays.sort()来给数组中的元素排序
下面的例子是随机生成10个随机数,并且按照升序排列,然后把排序后的数组打印出来:
import java.util.Arrays;
public class example_08_01 {
public static void main(String[] args) {
int[] num = new int[10];//可以根据自己的需要定义产生几个随机数
System.out.println("产生的随机数为:");
for (int i=0; i<10; i++){
num[i] = (int)(Math.random()*100);
System.out.println(num[i]+" ");
}
System.out.println();
Arrays.sort(num);
System.out.println("排序后的随机数为:");
for (int i= 0; i<10; i++){
System.out.println(num[i]+" ");
}
}
}
其中一次运行结果:
产生的随机数为:
65
91
20
99
26
9
68
34
76
91
排序后的随机数为:
9
20
26
34
65
68
76
91
91
99
图片来自 遇见狂神说