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. Ändern counter < fiblist[4] zu counter < 4 und ändern int counter = fiblist[14] zu int 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] zu counter < 19.
Schreibe einen Kommentar