Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: problema arraylist

  1. #1

    problema arraylist

    Ciao a tutti...
    dovrei scorrere un'arraylist per inserire degli elementi di una classe...(quindi non stringhe , interi..ma 3 attributi di una classe...)

    scrivo questo ciclo ma mi da errore.....-.-...
    Siamo in una classe TV


    public void inserisci(){
    Scanner in=new Scanner(System.in);
    ..............
    ..............
    int k;
    System.out.println("Inserisci le periferiche");
    k=in.nextInt();
    ArrayList<Periferiche> Lista=new ArrayList<Periferiche>(k.size());
    for(int i=0;i<Lista.size();i++){
    Periferiche p = new Periferiche();
    p.inserisci();}

    mi da l'errore dopo che stampo sullo schermo inserisci le periferiche.......
    tra l atrlo ho anche evitato di dichiarare k ...e uguale mi da sempre errore...

  2. #2
    Ti rendi conto vero che stai chiamando il metodo size su un tipo primitivo int (k.size())?
    E poi che discorso e' che hai provato a non dichiarare k? Non e' che in Java tu possa non dichiarare le varibili!

    In piu' il tuo ciclo for non mi pare abbia molto senso, non che ci siano errori, ma direi che non fa nulla, scorri una lista vuota, quindi non esegui nulla di quello che c'e' nel loop.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  3. #3
    Originariamente inviato da mxa
    Ti rendi conto vero che stai chiamando il metodo size su un tipo primitivo int (k.size())?
    E poi che discorso e' che hai provato a non dichiarare k? Non e' che in Java tu possa non dichiarare le varibili!

    In piu' il tuo ciclo for non mi pare abbia molto senso, non che ci siano errori, ma direi che non fa nulla, scorri una lista vuota, quindi non esegui nulla di quello che c'e' nel loop.
    Si mi rendo conto.........ma è stata una prova chiamare in quel modo il metodo size...ho provato anche a scrivere
    ArrayList<Periferiche> Lista=new ArrayList<Periferiche>();

    ma quando andavo a far partire il metodo inserisci mi dava delle eccezioni...

    riguardo la non dichiarazione di k mi sono spiegato male...ho pensato, dato che con gli arraylist abbiamo un meccanismo di template di non far stabilire esplicitamente la dimensione all'utente..

    per il ciclo lo so che è sbagliato ma dovrei inserire le "periferiche" nella lista..

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da carinho10
    Si mi rendo conto.........ma è stata una prova chiamare in quel modo il metodo size...ho provato anche a scrivere
    ArrayList<Periferiche> Lista=new ArrayList<Periferiche>();

    ma quando andavo a far partire il metodo inserisci mi dava delle eccezioni...

    riguardo la non dichiarazione di k mi sono spiegato male...ho pensato, dato che con gli arraylist abbiamo un meccanismo di template di non far stabilire esplicitamente la dimensione all'utente..

    per il ciclo lo so che è sbagliato ma dovrei inserire le "periferiche" nella lista..
    Che tipo di eccezione con la dichiarazione dell'ArrayList in quel modo? (che per quanto ne so è corretta come dichiarazione)
    al volante son nervoso

  5. #5
    Originariamente inviato da Rubox
    Che tipo di eccezione con la dichiarazione dell'ArrayList in quel modo? (che per quanto ne so è corretta come dichiarazione)
    Allora così il metodo funziona alla grande...faccio inserire il n° di periferiche dalla tastiera ..tutto ok..ora il problema è nel metodo stampa..non accade nulla anche se nella funzione inserisci ho l'istruzione Lista.add(p);...non mi stampa un bel niente!

    public void inserisci(){
    Scanner in=new Scanner(System.in);
    int k;
    System.out.println("Inserisci la marca del computer");
    marca=in.next();
    super.inserisci();
    System.out.println("Inserisci il n° di periferiche");
    k=in.nextInt();
    Periferiche p = new Periferiche();
    ArrayList <Periferiche> Lista = new ArrayList <Periferiche>();
    for(int i=0;i<k;i++){
    p.inserisci();}
    Lista.add(p);
    }

    public void stampa(){

    for(int i=0;i<Lista.size();i++)
    Lista.get(i).stampa();

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da carinho10
    Allora così il metodo funziona alla grande...faccio inserire il n° di periferiche dalla tastiera ..tutto ok..ora il problema è nel metodo stampa..non accade nulla anche se nella funzione inserisci ho l'istruzione Lista.add(p);...non mi stampa un bel niente!
    codice:
    public void inserisci(){
    	Scanner in=new Scanner(System.in);
    	int k;
    	System.out.println("Inserisci la marca del computer");
    	marca=in.next();
    	super.inserisci();
    	System.out.println("Inserisci il n° di periferiche");
    	k=in.nextInt();
    Periferiche p = new Periferiche();
    ArrayList <Periferiche> Lista = new ArrayList <Periferiche>();
    	for(int i=0;i<k;i++){
    		p.inserisci();}
    	Lista.add(p);
    	}
    
    public void stampa(){
    	
    	for(int i=0;i<Lista.size();i++)
    		Lista.get(i).stampa();
    marca che cos'è?
    poi, nel for cicli su k, e richiami un p.inserisci()... cosa fa sto inserisci?

    Non ci capisco molto del tuo codice
    al volante son nervoso

  7. #7
    Originariamente inviato da Rubox
    marca che cos'è?
    poi, nel for cicli su k, e richiami un p.inserisci()... cosa fa sto inserisci?

    Non ci capisco molto del tuo codice
    marca è un attributo di personal computer

    p è un riferimento a un oggetto di classe periferiche

    il ciclo su k è esatto..

    non stampa però..

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da carinho10
    marca è un attributo di personal computer

    p è un riferimento a un oggetto di classe periferiche

    il ciclo su k è esatto..

    non stampa però..
    Ma facendo delle stampe di debug o facendo il debug del programma con un IDE... i valori di k, p ecc... ti tornano?
    al volante son nervoso

  9. #9
    Originariamente inviato da Rubox
    Ma facendo delle stampe di debug o facendo il debug del programma con un IDE... i valori di k, p ecc... ti tornano?
    non accade assolutamente nulla...dopo che inserisco tutto mi stampa solo la marca e il prezzo dl computer....

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da carinho10
    non accade assolutamente nulla...dopo che inserisco tutto mi stampa solo la marca e il prezzo dl computer....
    Ma vedo ora che Lista lo dichiari nel metodo inserisci, e poi in stampa() fai riferimento ad un Lista... ma quel lista non è lo stesso che hai dichiarato in inserisci().
    Questo di inserisci muore appena l'esecuzione va oltre la parentesi di chiusura del metodo.
    al volante son nervoso

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 © 2025 vBulletin Solutions, Inc. All rights reserved.