Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Problemi di conversione tra ArrayList e Array

    Salve a tutti.
    Il mio main è:
    codice:
            System.out.println("Elementi:");
            Elemento[] el = s.getElementi();
            for(int i=0; el[i]!=null; i++)
                System.out.println(el[i].getNome());
    E richiama questo metodo:
    codice:
        public Elemento[] getElementi(){
            int length=elementi.size();
            int i=0;
            Elemento[]elem=new Elemento[length+1];
            for(i=0;i<length;i++){
            elem[i]=elementi.get(i);}
    
            
            return elem;}
    Ma lì mi si ferma il programma dicendomi:
    codice:
    Elementi:
    Src
    R
    Sink1
    Sink2
    T
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        at idraulica.Esempio.main(Esempio.java:23)
    La linea 23 è
    codice:
    for(int i=0; el[i]!=null; i++)
    . Sapete spiegarmi dov'è il problema? E' sicuramente una banalità, ma non ne vengo a capo.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da wFree Visualizza il messaggio
    La linea 23 è
    codice:
    for(int i=0; el[i]!=null; i++)
    . Sapete spiegarmi dov'è il problema? E' sicuramente una banalità, ma non ne vengo a capo.
    Il test presuppone che dopo un tot di elementi non-null, ne esista comunque uno null. Sei sicuro che sia così? E comunque non è in generale un buon approccio usare un valore null di "terminazione".

    Se l'elemento null può non esserci (perché l'array è pieno di non-null), allora banalmente puoi aggiungere prima in "and" la condizione che i < el.length.


    P.S. partendo da una List/Collection e volendo ottenere un array, esiste un modo semplice e pulito: il toArray(T[] a)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Ti ringrazio. E' bastato creare un ultimo elemento null prima di passare l'array perchè tutto funzionasse. Purtroppo il main mi è statoo fornito dal professore e non potevo modificarlo.

    Il toArray l'ho scoperto dopo. In effetti semplifica non poco la vita

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.