Java Bubble Sort,Anfängerfehler

ParssaDerMaster

Neues Mitglied
Hey leute bin noch ziemlich neu was das alles angeht,
Ich soll möchte aufjedenfall ein programm schreiben was 5 zahlen übergeben bekommt und die dann anschliessen sortiert.Bitte nicht von Klassennamen irritieren lassen.
Java:
public class Median2{
        public static void main(String[] args){
                int a = Integer.parseInt(args[0]);
                int b = Integer.parseInt(args[1]);
                int c = Integer.parseInt(args[2]);
                int d = Integer.parseInt(args[3]);
                int e = Integer.parseInt(args[4]);

                int[] arr = new int[4];
                arr[0] = a;
                arr[1] = b;
                arr[2] = c;
                arr[3] = d;
                arr[4] = e;

                for(int j = 1; j< arr.length;j++){
                        for(int i = 0;i < arr.length; i++){
                                if(arr[i] > arr[i +1]){
                                int tmp = arr[i];
                                arr[i] = arr[i+1];
                                arr[i+1] = tmp;
                                }
                        }
                }

                for(int z = 0; z < arr.length;z++){
                        System.out.println(arr[z]);
                }
}
}
Jetzt kriege ich aber folgende Fehlermeldung beom compilen:
[code]Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
   at Median2.main(Median2.java:14)
Könnte mir jemand verraten wo genau das problem ist ? komme leider garnicht mehr weiter
 
Zuletzt bearbeitet von einem Moderator:
Was sagt die Fehlermeldung? Du greifst auf einen Index zu, welcher nicht existiert. Dein Array hat Länge 4, du möchtest aber 5 Zahlen darin unterbringen. D.h. ändere int[] arr = new int[4];
Zu int[] arr = new int[5];
Danach wird es solch einen Fehler nochmal geben, aber den darfst du versuchen selbst zu lösen.
 
Das Problem steht doch als Klartext da: ArrayIndexOutOfBounds.
Du greifst auf ein Element deines Arrays zu, dass es nicht gibt, also vermutlich auf einen Indexwert, der größer ist als "4".
 
Moin,
genau! Überleg' mal, was Du hier versuchst:
Java:
int[] arr = new int[4];
arr[0] = a;
arr[1] = b;
arr[2] = c;
arr[3] = d;
arr[4] = e;
Richtig 😀 du hast ein Array der Länge 4 .... und machst dann was ?? 😛

VG Klaus

EDIT: mal davon abgesehen würde ich auch sicherstellen, dass args auch wirklich 5 Elemente enthält, sonst knallt es dort als Nächstes !!
 

Zurück
Oben