Wie zu beheben array index out of bounds Fehler?
Den Fehler, dass ich immer
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 610
at Fib.sorted(Fib.java:67)
at Fib.main(Fib.java:17)
Mein code
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;
}
}
Ich versuche zu speichern die letzten 5 Elemente mein array in temp 2.
Dann werde ich wechsle Sie.
Gibt es ein einfacher Weg, dies zu tun?
Wechseln Sie die ersten fünf Elemente in einem array mit den letzten fünf?
Wie würden Sie schalten Sie Sie mit einer for-Schleife?
- Ihre
counter
sein sollte, die position im array und nicht den Wert der position. Änderncounter < fiblist[4]
zucounter < 4
und ändernint counter = fiblist[14]
zuint counter = 14
um das problem zu beheben. - Dieser sieht aus wie ärger
int counter = fiblist[14]; counter < fiblist[19];
da Sie immer Werte, die größer als die Größe Ihrer Liste - Und auch
counter < fiblist[19]
zucounter < 19
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert
Ausgabe:
Du verwechselst array, index und value. fiblist[19] 6765. Sie möchten Ihre Zähler gehen von 0 bis 4 und 14 bis 19, nicht fiblist[19].
Versuchen. Es ist ein Sortier-Algorithmus (Eine ziemlich schlechte wenn)