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

    [Java] Iterare su una collezione di generic

    Ciao,
    probabilmente si tratta di una banalità ma non tocco gli iteratori da anni e forse mi serve usarli in un programmino che stò terminando.

    Allora sono nella seguente situazione: In pratica ho un mio tipo di oggetto Poi (che rappresenta un punto di interesse con nome, longitudine, latitudine, descrizione, etcetc...vabbè non è importante).
    Io dichiaro una lista di generici oggetti Poi chiamata result. Dentro tale lista ci vado a mettere il riferimento ad un'ArrayList di generici oggetti Poi (tramite il metodo getRisultato())...e fin quì funziona tutto bene infatti come vedete faccio una serie di System.out che mi visualizzano il contenuto informativo di un arbitrario punto di interesse...ho creato un iteratore e l'ho usato per scorrere la collezione result invocando il metodo hasNext() solo che non succede nulla...probabilmente sono un bel po' arruginito sull'argomento e mi sfugge qualcosa, riuscite ad illuminarmi?

    Il problema viene sulla seconda parte in grassetto: io voglio iterare su tale collezione di generici oggetti di tipo Poi, voglio scorrerla dall'inizio alla fine

    codice:
    private List<Poi> result = null;					// Contiene il risultato da mostrare sulla mappa
    
    result = GuidaSubActivity.getRisultato();	// Mette la lista di POI nella variabile result
        	if(result != null){
        		System.out.println("Sono dentro GuidaGeoReferenziata e result punta a: " + result.toString());
        		
        		Poi poiMain = null;
                poiMain = result.get(3);
                System.out.println("Nome poiMain: " + poiMain.getNome());
                System.out.println("Lat poiMain: " + poiMain.getLat());
                System.out.println("Lon poiMain: " + poiMain.getLon());
                System.out.println("WikiLink poiMain: " + poiMain.getWikilynk());
                
                Iterator <Poi> itr = result.iterator();
                while (itr.hasNext()) {
                	Poi element = itr.next();
                    System.out.print("Nome Poi corrente: " + element.getNome());
                }
    Grazie

  2. #2
    Non sono affatto il mio forte gli iteratori, ma hai implementato bene il metodo iterator?

  3. #3
    Originariamente inviato da Darèios89
    Non sono affatto il mio forte gli iteratori, ma hai implementato bene il metodo iterator?
    Ci avevo pensato anche io ma...è una collezione di generici oggetti Poi...non ho mica una classe che mi implementa la lista di Poi...è semplicemente un'ArrayList di oggetti Poi dichiarata così:
    private List<Poi> result = null;

    Mi risulta che l'iteratore te lo vai ad implementare quando hai una specifica classe che implementa una specifica collezione, da quel che mi ricordo su una collezione di oggetti generici dovrebbe essere ereditato dalla collezione ArrayList...così mi pare almeno...

    Attendiamo conferme o sementite e sopratutto chiarimenti

    Tnx

  4. #4
    La classe ArrayList dispone già di un iteratore per il semplice fatto che è una sottoclasse di AbstractList la quale effettivamente implementa iterator().

  5. #5
    Originariamente inviato da VincenzoTheBest
    La classe ArrayList dispone già di un iteratore per il semplice fatto che è una sottoclasse di AbstractList la quale effettivamente implementa iterator().
    ehh come pensavo...ma perchè allora non mi funziona? noti qualcosa che non vada nel mio codice?

    Grazie
    Andrea

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    13
    Sinceramente io di errori nel codice non ne vedo...
    Ho usato gli iteratori proprio poco tempo fa....e l'ho fatto più o meno nello stesso modo in cui lo fai tu.... e mi funzionava tutto regolarmente.

    Ma sei sicuro che non stampa nulla?
    Scusa se ti dico una cosa banale ma....prova a fare una println invece che una print soltanto nel ciclio while.... magari, visto che con la print li stampa tutti su una riga, questo potrebbe confonderti...

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.