Java数组练习题
时间: 2025-03-20 17:01:54 浏览: 32
### Java 数组练习题及相关代码
以下是几个经典的 Java 数组练习题及其对应的实现代码:
#### 1. **求数组中的最大值**
通过遍历数组找到其中的最大值。
```java
public class MaxValue {
public static void main(String[] args) {
int[] arr = {3, 5, 7, 2, 8};
System.out.println("Max Value: " + findMax(arr));
}
public static int findMax(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("Array is empty or null");
}
int max = arr[0];
for (int num : arr) {
if (num > max) {
max = num;
}
}
return max;
}
}
```
此代码实现了求数组中最值的功能[^1]。
---
#### 2. **求数组的平均值**
计算整型数组中所有元素的平均值。
```java
public class AverageValue {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6};
System.out.println("Average Value: " + calculateAvg(arr));
}
public static double calculateAvg(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("Array is empty or null");
}
int sum = 0;
for (int x : arr) {
sum += x;
}
return (double) sum / arr.length;
}
}
```
这段代码展示了如何利用循环结构来完成数组平均值的计算功能[^2]。
---
#### 3. **查找数组中的指定元素**
使用顺序查找法在一个整型数组中定位某个特定数值的位置。
```java
public class SearchElement {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
int target = 30;
int result = search(arr, target);
if (result != -1) {
System.out.println("Element found at index: " + result);
} else {
System.out.println("Element not found.");
}
}
public static int search(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
}
```
上述程序演示了基本的线性搜索技术用于在数组中寻找目标项的方法。
---
#### 4. **找出数组中出现次数最多的元素**
采用投票算法(Boyer-Moore Majority Vote Algorithm),可以高效地确定数组中占多数的元素。
```java
public class MajorityElement {
public static void main(String[] args) {
int[] nums = {3, 2, 3, 1, 2, 2};
System.out.println("Majority Element: " + findMajority(nums));
}
public static int findMajority(int[] nums) {
int count = 0;
Integer candidate = null;
for (int num : nums) {
if (count == 0) {
candidate = num;
}
count += (candidate == num) ? 1 : -1;
}
return candidate;
}
}
```
该解决方案基于一种高效的计数策略,适用于处理大规模数据集的情况[^4]。
---
#### 5. **向有序数组中插入新元素并保持其顺序**
当需要将一个新的数字加入已排序好的数组时,可以通过调整现有元素位置的方式维持原有的排列次序。
```java
import java.util.Arrays;
public class InsertIntoSortedArray {
public static void main(String[] args) {
int[] arr = {1, 3, 4, 5, 7, 9, 0}; // Last element reserved as placeholder
int valueToInsert = 6;
insertAndSort(arr, valueToInsert);
System.out.println(Arrays.toString(arr));
}
private static void insertAndSort(int[] arr, int newValue) {
int pos = arr.length - 1;
while (pos >= 0 && arr[pos - 1] > newValue) {
arr[pos] = arr[pos - 1];
pos--;
}
arr[pos] = newValue;
}
}
```
这里提供了一种有效的方式来更新包含预留空间的固定大小数组的内容[^5]。
---
### 总结
以上示例涵盖了多种常见的数组操作技巧,包括但不限于求最值、统计均值、检索特定条目以及执行高级分析任务等。每一段代码都经过精心设计以满足实际应用场景下的需求,并附带必要的错误检测逻辑确保健壮性和可靠性。
阅读全文
相关推荐










