【发布时间】:2017-10-02 04:27:00
【问题描述】:
有人可以向我解释为什么我的数组越界错误吗?
longestStreak : 布尔数组 -> 整数
目的:计算输入参数值中最长连续真实事件的长度
输入:values 是一个非空的布尔数组,长度至少为 1
输出:输出在输入数组中找到的最大连续真数
import java.util.Arrays;
public class Problem3 {
public static void main (String[] args) {
boolean[] test = new boolean[] {true, false, true, true, false};
int[] o = longestStreak(test);
System.out.println(o);
}
public static int[] longestStreak(boolean[] values) {
int streak = 0;
int max = 0;
int arrsize = 0;
for (int i = 0; i < values.length; i++) {
if (values[i]) {
streak++;
max = streak;
arrsize++;
}
else {
streak = 0;
}
}
int[] output = new int[arrsize];
for (int i = 0; i < values.length; i++) {
for (int z = 1; z < values.length; z++) {
if (values[i]) {
i = output[z];
}
}
}
return output;
}
}
【问题讨论】:
-
你能在哪一行发布你得到异常的信息吗?
-
根据您的描述,longestStreak 应该返回 int,而不是 int []。从改变它开始。如果您仍有问题,请更新您的问题。
-
@SOlsson 我要查找的最终输出是 [2,2] 的数组。
标签: java arrays indexoutofboundsexception