目录
- 数组的遍历
- 使用for循环遍历数组
- 使用for-each循环遍历数组
- 使用while循环和迭代器遍历数组
- 使用Java 8的流API遍历数组
- 数组遍历的应用
- 求数组中的最大值
- 查询数组中指定位置的元素
- 将查指定元素对应的索引的功能提取为方法
- 添加数组元素
- 删除数组元素
数组的遍历
Java数组的遍历可以使用循环结构来实现。以下是一些常见的遍历数组的方法:
使用for循环遍历数组
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);
}
使用for-each循环遍历数组
int[] arr = {1, 2, 3, 4, 5};
for (int element : arr) {System.out.println(element);
}
使用while循环和迭代器遍历数组
int[] arr = {1, 2, 3, 4, 5};
Iterator<Integer> iterator = Arrays.asList(arr).iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}
使用Java 8的流API遍历数组
int[] arr = {1, 2, 3, 4, 5};
Arrays.stream(arr).forEach(System.out::println);
数组遍历的应用
求数组中的最大值
在Java中,你可以使用一个简单的for循环来遍历数组并找到最大值。以下是一个示例代码:
public class Main {public static void main(String[] args) {int[] arr = {1, 5, 9, 3, 7};int maxValue = arr[0]; // 假设第一个元素是最大的for (int i = 1; i < arr.length; i++) {if (arr[i] > maxValue) {maxValue = arr[i]; // 如果当前元素大于maxValue,则更新maxValue}}System.out.println(maxValue); // 输出: 9}
}
在这段代码中,我们假设数组的第一个元素是最大的。然后,我们遍历数组的其余部分,如果当前元素大于maxValue
,则更新maxValue
。最后,maxValue
就是数组中的最大值。
查询数组中指定位置的元素
在Java中,如果你想查询数组中指定位置的元素,你可以使用数组索引。数组索引从0开始,所以如果你想查询第n个元素,你应该使用索引n-1。以下是一个简单的示例:
public class Main {public static void main(String[] args) {int[] arr = {1, 5, 9, 3, 7};int index = 2; // 指定位置int element = arr[index]; // 查询指定位置的元素System.out.println(element); // 输出: 9}
}
在这个例子中,我们创建了一个包含5个元素的整数数组。然后,我们指定要查询的位置(在这个例子中是第2个位置),并使用该位置的索引来获取该位置的元素。最后,我们将元素打印出来,以验证我们的查询结果。
将查指定元素对应的索引的功能提取为方法
public class TestArray01 { public static void main(String[] args) { // 给定一个数组: int[] arr = {12, 34, 56, 7, 3, 56}; // 0 1 2 3 4 5 // 功能:查询元素999对应的索引: // 调用方法: int index = getIndex(arr, 999); // 后续对index的值进行判断: if (index != -1) { System.out.println("元素对应的索引:" + index); } else { // index == -1 System.out.println("查无此数!"); } } /* 定义一个方法:查询数组中指定的元素对应的索引: 不确定因素:哪个数组,哪个指定元素 (形参) 返回值:索引 */ public static int getIndex(int[] arr, int ele) { int index = -1; // 这个初始值只要不是数组的索引即可 for (int i = 0; i < arr.length; i++) { if (arr[i] == ele) { index = i; // 只要找到了元素,那么index就变成为i break; // 只要找到这个元素,循环就停止 } } return index; }
}
添加数组元素
import java.util.Scanner;public class TestArray02 {public static void main(String[] args) {// 功能:给定一个数组,在数组下标为5的位置上添加一个元素91// 1. 给定一个数组:int[] arr = {12, 34, 56, 7, 3, 10, 55, 66, 77, 88, 999, 89};// 0 1 2 3 4 5// 2. 输出增加元素前的数组:System.out.print("增加元素前的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else { // i == arr.length-1 最后一个元素不用加,System.out.print(arr[i]);}}// 从键盘接收数据:Scanner sc = new Scanner(System.in);System.out.println("请录入你要添加元素的指定下标:");int index = sc.nextInt();System.out.println("请录入你要添加的元素:");int ele = sc.nextInt();// 3. 增加元素// 调用方法:insertEle(arr, index, ele);// 4. 输出增加元素后的数组:System.out.print("\n增加元素后的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else { // i == arr.length-1 最后一个元素不用加,System.out.print(arr[i]);}}}/*提取一个添加元素的方法:在数组的指定位置上添加一个指定的元素。在哪个数组的哪个位置添加哪个元素!不确定因素:形参:哪个数组,哪个位置,哪个元素返回值:无*/public static void insertEle(int[] arr, int index, int ele) {for (int i = arr.length - 1; i >= index; i--) {arr[i] = arr[i - 1];}arr[index] = ele;}
}
删除数组元素
import java.util.Arrays;public class TestArray03 {public static void main(String[] args) {// 功能:给定一个数组,删除元素4:// 1. 给定一个数组:int[] arr = {1, 2, 4, 4, 5, 4, 6, 4, 8, 9};// 2. 输出删除前的数组:System.out.println("删除元素前的数组:" + Arrays.toString(arr));// 找到要删除的元素对应的索引即可:int index = -1;for (int i = 0; i < arr.length; i++) {if (arr[i] == 4) {index = i;break;}}// 3. 删除if (index != -1) {for (int i = index; i < arr.length - 1; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;} else { // index == -1System.out.println("根本没有你要删除的元素!");}// 4. 输出删除后的数组:System.out.println("删除元素后的数组:" + Arrays.toString(arr));}
}
这个例子中的数组包含多个重复的元素4,我们将删除第一个出现的元素4。代码执行后,将输出删除元素后的数组。请注意,这里我们使用0来填充删除元素后的位置,以确保数组中的元素数量保持不变。