明确: 程序是用来处理数据的, 因此要掌握数据处理的数据结构
数组是编程中常用的数据结构之一,用于存储一系列相同类型的元素。在Java中,数组是一种对象,可以存储固定大小的相同类型元素的集合。
1.一维数组
数组是一个数据容器,可用来存储一批同类型的数据
1.1 一维数组的初始化
1.2 一维数组的访问
public static void inputScore() {
// 1. 你需要一个数组来存储8名学生的成绩。
// 动态初始化数组,只确定数组的类型和存储数据的容量。不事先存入具体的数据。
// 数据类型[] 数组名 = new 数据类型[长度];
double[] scores = new double[8];
// scores = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// 0 1 2 3 4 5 6 7
// 2. 录入8名学生的成绩,存入到数组中去
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
// i = 0 1 2 3 4 5 6 7
System.out.println("请输入第" + (i + 1) + "个学生的成绩:");
scores[i] = sc.nextDouble();
}
// 3. 遍历数组,统计总分,平均分。
double allScore = 0.0;
for (int i = 0; i < scores.length; i++) {
// i = 0 1 2 3 4 5 6 7
double score = scores[i];
// 4. 累加当前遍历到的这个分数
allScore += score;
}
System.out.println("平均分:" + allScore / scores.length);
}
1.3 一维数组求最值的思想
初始化变量:首先,你需要一个变量来保存最大值(或最小值)。通常,你可以将数组的第一个元素赋值给这个变量。
遍历遍数组:然后,遍历数组中的每个元素,将它们与当前的最大值(或最小值)进行比较。
更新变量:如果发现一个元素比当前的最大值(或最小值)更大(或更小),则更新最大值(或最小值)变量。
返回结果:遍历完成后,最大值(或最小值)变量中保存的就是数组中的最大值(或最小值)。
// 设计一个方法,求数组的最大值返回。
public static int getMax(int[] arr) {
// 1、定义一个变量用于记录当前最大值,建议用第一个数据做为参照物。
int max = arr[0];
// 2、从数组的第二个位置开始遍历
for (int i = 1; i < arr.length; i++) {
// 3、依次和参照物比较,如果比参照物大,则更新参照物。
int data = arr[i];
if (data > max) {
max = data;
}
}
// 4、返回最大值。
return max;
}
1.4 一维数组的元素交换
确定交换的元素:首先,你需要知道要交换的两个元素的索引位置。例如,如果你想交换数组中索引为
i
和j
的两个元素,你需要记录下这两个索引。使用临时变量:由于数组中的元素是按位置存储的,直接交换两个元素可能会导致数据丢失。因此,通常需要一个临时变量来暂存一个元素的值。
交换元素:将第一个元素的值存储到临时变量中,然后将第二个元素的值赋给第一个元素,最后将临时变量中的值赋给第二个元素。
验证结果:交换完成后,可以通过打印或检查数组来验证元素是否成功交换
public class ArrayElementSwap {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("原始数组: ");
for (int number : numbers) {
System.out.print(number + " ");
}
System.out.println();
swap(numbers, 1, 3); // 交换索引1和索引3的元素
System.out.println("交换后的数组: ");
for (int number : numbers) {
System.out.print(number + " ");
}
}
public static void swap(int[] array, int index1, int index2) {
int temp = array[index1]; // 保存索引1处的值
array[index1] = array[index2]; // 索引2处的值赋给索引1
array[index2] = temp; // 临时变量的值赋给索引2
}
}
2.二维数组
数组中的每个元素都是一个一维数组, 这个数组就是二维数组