Java数组操作实验求助:区间求和、计数、元素移除实现
Java数组操作方法实现
下面是你需要的三个数组操作方法的完整代码及说明,均基于基础for循环实现,匹配你的尝试方向:
1. 指定区间求和
先校验区间合法性避免数组越界,再从起始索引遍历到结束索引累加元素值。
public static int sumInRange(int[] arr, int startIndex, int endIndex) { // 参数合法性校验:防止数组为空、索引越界或起始索引大于结束索引 if (arr == null || startIndex < 0 || endIndex >= arr.length || startIndex > endIndex) { throw new IllegalArgumentException("无效的数组或区间参数"); } int sum = 0; // 遍历区间内的所有元素(包含起始和结束索引) for (int i = startIndex; i <= endIndex; i++) { sum += arr[i]; } return sum; }
说明:用i <= endIndex确保区间末尾元素被计入;提前校验参数能避免运行时抛出数组越界异常。
2. 统计指定数字出现次数
遍历整个数组,遇到目标数字就累加计数器。
public static int countOccurrences(int[] arr, int target) { if (arr == null) { return 0; } int count = 0; for (int num : arr) { if (num == target) { count++; } } return count; }
说明:这里用了增强for循环,也可以替换为普通for循环for(int i=0; i<arr.length; i++),逻辑完全一致。
3. 移除数组中所有指定值
由于Java数组长度不可变,通过收集非目标值元素到新数组实现需求:
public static int[] removeValue(int[] arr, int target) { if (arr == null) { return new int[0]; } // 先统计需要保留的元素数量,确定新数组长度 int newLength = 0; for (int num : arr) { if (num != target) { newLength++; } } // 创建新数组并填充非目标值元素 int[] result = new int[newLength]; int index = 0; for (int num : arr) { if (num != target) { result[index++] = num; } } return result; }
说明:先统计长度能避免创建冗余空间,保证新数组大小刚好合适;遍历原数组时只保留符合条件的元素。
测试示例
可以在main方法中验证这些方法:
public static void main(String[] args) { int[] testArr = {1, 2, 3, 4, 3, 2, 1}; // 测试区间求和:索引1到4(元素2,3,4,3),结果为12 System.out.println(sumInRange(testArr, 1, 4)); // 统计数字3的出现次数,结果为2 System.out.println(countOccurrences(testArr, 3)); // 移除所有2,结果数组为[1,3,4,3,1] int[] removedArr = removeValue(testArr, 2); for (int num : removedArr) { System.out.print(num + " "); } }
内容的提问来源于stack exchange,提问作者yasmean
相关产品推荐
相关产品推荐

