Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [java]iterable

  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]iterator

    ciao sto imparando da poco l'utilità di iterable;se ho il seguente problema:scrivi un programma che scandisca un elemento alla volta e li stampi.
    codice:
    import java.awt.*;
    import java.util.*;
    class Iterattore{
    public static void main(String[]args){
        List c=new List();
             c.add("xxxx");
             c.add("iiii");
             Iterator i=c.iterator();
             while(i.hasNext()){
             System.out.println(i.next());
                }
             }
        }
    Il compilatore dice che list è ambiguo...perche?Che differenza c'è tra l'interfaccia iterable e iterator?
    Ultima modifica di el92; 18-02-2015 a 18:58

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'errore che ti riporta il compilatore non c'entra nulla.
    List è ambiguo perchè tu hai importato sia java.awt.* (perchè? Non ti serve a nulla) sia java.util.*.

    Esiste sia una classe java.awt.List che l'interfaccia java.util.List ed il compilatore ti sta dicendo che non sa quale tu intenda usare. In casi di ambiguità va specificato il fully-qualified name della classe (quindi, compreso tutto il package).

    Ad ogni modo quel codice è sbagliato. Stai cercando di usare la classe java.awt.List (che rappresenta un componente visuale per il trattamento di liste di oggetti) al posto dell'interfaccia java.util.List (che, ovviamente, non può essere usata direttamente, ma va usata una sua implementazione concreta, come ad esempio ArrayList, LinkedList, Vector, ecc). Inoltre l'interfaccia java.util.List è generica e va, quindi, parametrizzata

    Quindi, cosa numero uno togli l'import per java.awt.* che non ti serve a nulla (non stai usando vecchie interfacce grafiche AWT).

    Seconda cosa: usa un'istanza concreta di List (quella che vuoi)

    Terza cosa: parametrizza... stai inserendo stringhe, quindi usa un List<String>.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    Ciao grazie 1000 x la risposta...solo una domanda qual'è la differenza tra List classe e List interfacccia(a parte che una è una classe e l'altra è un interfaccia)?Quando uso una e quando l'altra?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Come ho già scritto, la classe List di java.awt è un componente grafico (del framework AWT, corrispondente a JList di Swing, ovvero un oggetto da mostrare a video dentro ad una finestra), mentre l'altra è un'interfaccia che definisce un tipo di dato astratto (una lista di oggetti in memoria, nulla a che vedere con i componenti grafici, può essere paragonata ad un array).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    ok grazie 1000 adesso ho capito

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.