Domanda Problema ArrayList

glombardo4

Utente Iron
12 Febbraio 2021
1
1
0
9
Salve a tutti, ho un problema con un esercizio... in pratica utilizzo una classe per creare delle parole che man mano inserisco all'interno di un ArrayList, infine semplicemente faccio ritornare al main questo ArrayList e stampo a video.
Ciò che stampa però è un ArrayList vuoto, non capisco il perchè. Chi può darmi qualche suggerimento ? Grazie.

Codice:
import java.util.ArrayList;

public class MAIN {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
    int n=8;
    String stringa1 = "pino";
        operatore1 p = new operatore1();
        System.out.println( p.ciclo0(stringa1, n));
        
    }


}


In un altra classe poi ho inserito:

Codice:
import java.util.ArrayList;

 class operatore1 {
    

    
    
    
    
    public ArrayList <String> ciclo0(String parola, int n){

        char lettdx='0';
        ArrayList<String> a = new ArrayList<>();
        int dx = n - parola.length();
        char[] stringadx = new char [n];
            for(int i=0;i<n; i++) {
            stringadx [i] = '0';

                }
        
            for (int j = n-1; j> n-1-dx; j--) {
            while(lettdx <='9') {
                stringadx[j]=lettdx;
                a.add(parola + stringadx.toString());
                lettdx++;
                }
            }
            return a;
    }
    
    
    }
 
Allora, innanzitutto di base è sbagliato inserire all'interno di una System.out.println un ArrayList. Difatti richiamando il metodo ciclo0 all'interno della println stai cercando di stampare a schermo l'ArrayList come oggetto e non il suo contenuto. In DeBug hai potuto notare se la lista che ritorni viene popolata correttamente? In quel caso ti basterebbe usare un ciclo for nel quale richiami la println e all'interno di questa passi il tuo arraylist e usi il metodo get.

Java:
import java.util.ArrayList;

public class MAIN {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
    int n=8;
    String stringa1 = "pino";
        operatore1 p = new operatore1();
        ArrayList<String> listaParole = p.ciclo0(string1,n);
        for( String parolaDaStampare : listaParole){

                  System.out.println( parolaDaStampare );

         }
        
        
    }


}
Qui ho usato direttamente un ForEach (per leggere le liste è consigliato in quanto più dinamico e ti bypassa anche l'eventuale null).

Contattami pure in PM se ti serve una mano