【发布时间】:2014-10-01 19:36:06
【问题描述】:
我遇到的错误
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 610
at Fib.sorted(Fib.java:67)
at Fib.main(Fib.java:17)
我的代码
public class Fib
{
public static void main(String args[])
{
System.out.println(Arrays.toString( fiblist) );
System.out.println(Fib.add());
System.out.println(Fib.square());
System.out.println(Fib.reversal());
System.out.println(Fib.sorted());
}
public static int fiblist[] = {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765};
public static int fiblen = fiblist.length;
public Fib()
{
// Do nothing
}
public static ArrayList<Integer> sorted()
{
ArrayList sorted = new ArrayList();
for(int counter = 0; counter < fiblist[4]; counter++ )
{
int temp1 = fiblist[counter];
System.out.println("Elements stored " + temp1);
}
for(int counter = fiblist[14]; counter < fiblist[19]; counter++)
{
int temp2 = fiblist[counter];
System.out.println("Last Elements stored " + temp2);
}
return sorted;
}
}
我正在尝试将数组的最后 5 个元素存储在 temp 2 中。 然后我会切换它们。 有没有更简单的方法来做到这一点? 将数组的前五个元素与后五个元素交换? 您将如何使用 for 循环切换它们?
【问题讨论】:
-
您的
counter应该是数组中的位置,而不是该位置的值。将counter < fiblist[4]更改为counter < 4并将int counter = fiblist[14]更改为int counter = 14以解决问题。 -
这看起来很麻烦
int counter = fiblist[14]; counter < fiblist[19];,因为你得到的值远远高于你的列表大小 -
还有
counter < fiblist[19]到counter < 19。
标签: java arrays indexoutofboundsexception