ArrayList : Zeilenanzahl eingeben?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ArrayList : Zeilenanzahl eingeben?

    Hallo Community,
    habe eine kleine frage also hier indiesem fall hat die Liste 10 Zeilen aber ich will, dass man die namen eingibt wieviel man will und dass dann nur die namen die vom benutzer eingegeben wurden als liste angezeigt wird also ohne die Nullen. Kann man eigentlich nicht sagen dass es von i<=EINZAHL DER EINGABEN geht? üBER Ihre Hilfe würde mich sehr freuen. Danke im Voraus

    das hier habe ich programmiert:

    Quellcode

    1. public static void main(String[] args) {
    2. // TODO code application logic here
    3. System.out.println("Erstellen einer Namensliste!");
    4. String namenliste[]=new String [10];
    5. String name;
    6. for(int i=0; i<=namenliste.length; i++){
    7. System.out.println("Name eingaben: ");
    8. name=Eingabe.readString();
    9. if(name.equals (".")){
    10. System.out.println(" Listeneingabe beendet: ");
    11. for(int j=0; j<=namenliste.length ;j++){
    12. System.out.println(namenliste[j]);
    13. }
    14. break;
    15. }
    16. else{
    17. namenliste[i]=name;
    18. }
    19. }
    20. }
    21. }
    Alles anzeigen


    Das hier wird ausgegeben: (Habe nur 3 Namen eingegeben aber dazu werden noch die nullen eingefügt wie kann ich die weglassen?)

    Listeneingabe beendet:
    klaus
    müller
    matthias
    null
    null
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    null
    null
    null
    at übungzumsortieren.Main.main(Main.java:38)
    null
    null
    Java Result: 1
    BUILD SUCCESSFUL (total time: 10 seconds)
  • Zum einen hast du die Möglichkeit, wenn dein Array voll ist einen neuen Array, größen Array zu erstellen und dann deine alten Elemente da rein zu kopieren. Du könntest aber auch gleich einfach eine ArrayList nehmen, die kümmert sich um alles.

    Quellcode

    1. for(int i=0; i<=namenliste.length; i++){


    Solltest du in deinem Programm, auf

    Quellcode

    1. for(int i=0; i<namenliste.length; i++){

    ändern. Da er sonst versucht in deinem Array auf die 10 Stelle deines Array zuzugreifen. Der Array fängt aber intern an bei 0 zu zählen. Heißt er hat nur die Stellen 0-9 und nciht 1-10. Wenn du jetzt versuchst auf array[10] zuzugreifen zeigt er dir dieses Exception an:

    Quellcode

    1. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10


    Bitte benutze das nächste mal die Code-Tags! Sonst hat man keine Übersicht über deinen geschriebenen Code.