Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Lista con interface

  1. #1

    Lista con interface

    Ciao a tutti, è qualche giorno che cerco di capire come diamine si usano le interface per creare liste.
    Intanto mi viene difficile capire perchè non sfruttare gli array che sono così comodi, ma tant'è. (sono molto abituato alla programmazione procedurale )

    posto un codice stupido, che avrebbe il solo scopo di farmi capire come usare questa cosa

    codice:
    interface IProva {
    	String getUtente();
    }
    
    class vuoto implements IProva{
    	public vuoto(){}
    	public String getUtente(){return "";}
    }
    
    class pieno implements IProva{
    	Utente primo;
    	IProva altri;
    	
    	public pieno(Utente primo, IProva altri){
    		this.primo=primo;
    		this.altri=altri;
    	}
    	
    	public String getUtente(){
    		return primo.n+" "+primo.c;
    	}
    }
    
    class Utente{
    	String n;
    	String c;
    	public Utente(String n, String c){
    		this.n=n;
    		this.c=c;
    	}
    }
    
    
    public class Principale {
    	public static void main(String[] args) {
    		Utente uno=new Utente("nome","cognome");
    		Utente due=new Utente("io","tu");
    		
    		IProva prova=new pieno(uno,new pieno(due, new vuoto()));
    		
    		System.out.println(prova.getUtente());
    	}
    }
    1. cosa significa fare questo? (parte in grassetto)

    public pieno(Utente primo, IProva altri ){

    il parametro di tipo interfaccia del metodo non riesco a capire ne a trovare una spiegazione da nessuna parte ci sono dietro da diversi giorni.. ad oggi l'ho preso come un "dato di fatto" ma vorrei capire

    2. Ovviamente il getUtente mi restituisce solo il primo elemento inserito..come faccio a riceverli tutti?
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  2. #2

    Re: Lista con interface

    [b]
    1. cosa significa fare questo? (parte in grassetto)

    public pieno(Utente primo, IProva altri ){

    il parametro di tipo interfaccia del metodo non riesco a capire ne a trovare una spiegazione da nessuna parte ci sono dietro da diversi giorni.. ad oggi l'ho preso come un "dato di fatto" ma vorrei capire
    Passi un riferimento ad un oggetto di tipo IProva, che ad occhio direi che il successivo della lista.
    2. Ovviamente il getUtente mi restituisce solo il primo elemento inserito..come faccio a riceverli tutti?
    Semplice prova.getAltri().
    Volendo si può implementare un while fermandosi quando o l'istanza di altri e di tipo "vuoto" (rispetta le java code conventions i nomi delle classi incominciano sempre con una maiuscola),
    oppure andado a vedere se il metodo getUtente ti restituisce la stringa vuota.

    PS.
    Un modo orrendo di implementare una lista....

  3. #3

    Re: Re: Lista con interface

    Originariamente inviato da francesco.muia
    Passi un riferimento ad un oggetto di tipo IProva, che ad occhio direi che il successivo della lista.


    Semplice prova.getAltri().
    Volendo si può implementare un while fermandosi quando o l'istanza di altri e di tipo "vuoto" (rispetta le java code conventions i nomi delle classi incominciano sempre con una maiuscola),
    oppure andado a vedere se il metodo getUtente ti restituisce la stringa vuota.

    PS.
    Un modo orrendo di implementare una lista....
    Anche a me sembra un modo orrendo di implementare una lista...molto orrendo, e non capisco perchè le soluzioni di alcuni esercizi che sto facendo riportino cose del genere


    tu avresti usato gli array?...io questo programmino lo stavo scrivendo solo per tentare di capire le soluzioni di altri esercizi

    ti faccio un esempio (trovati su internet)
    Si supponga di voler progettare e implementare parte del sistema informativo di una azienda
    di trasporti su rotaia. Per ogni treno occorrerà tenere traccia delle stazioni di fermata, della
    stazione di partenza e di quella di arrivo, oltre che dei relativi orari. Occorre poi che ad ogni
    treno sia associato il numero dei posti a sedere disponibili e il numero totale di chilometri percorsi.
    Nei treni espressi, infine, è previsto anche un servizio ristorante, e anche per questo servizio è
    necessario tenere traccia del numero di posti disponibili. Un utente di questo sistema informativo
    potrebbe essere interessato a determinare il numero di fermate effettuate da ciascun treno. Inoltre,
    chi utilizza tale sistema informativo potrebbe essere interessato a determinare il massimo ricavo
    realizzabile nell’erogazione di questo servizio. Tale ricavo dipende chiaramente da un parametro,
    ovvero dal prezzo che ogni passeggero dovrà pagare per percorrere un chilometro. Nei treni espressi
    occorrerà tenere conto anche del ricavo che si presume di ottenere in ogni chilometro da ognuno
    dei posti disponibili nel vagone ristorante (anch’esso fornito come parametro).
    l'ho risolto con gli array..in modo chiaro rapido e funziona perfettamente..vado a vedere la soluzione, (usata da uno studente universitario) ed usa il metodo scritto sopra

    sinceramente cosa sarebbe più opportuno usare?
    Siccome sto imparando e non vorrei perdere tempo a ragionare su stupidate..

    Grazie
    http://igr4mbo.altervista.org (piano piano)

    "Abbiamo costruito un sistema che ci persuade a spendere il denaro che non abbiamo in cose che non necessitiamo per creare impressioni che non dureranno su persone che non ci interessano" cit.

  4. #4
    Occhio io non intedevo che la struttura dati "Lista" è fatta male. Intendevo che l'implementazione di questa era fatta male.
    Per quanto riguarda le due strutture dati da te citate, Lista e Array, sono due strutture ben diverse che hanno ciascuna la sua pecularietà.
    Esempio se ho bisogno di accedere spesso a determinati elementi l'uso di un array mi permette l'accesso diretto mentre per la lista dovrò scorrerla finchè non arrivo all'elemento cercato, viceversa l'eliminazione di un nodo di una lista è un operazione molto semplice, cosa che invece non lo è in un'array.
    Cmq sul web trovi tante e tante discussioni su i preggi e i difetti delle due.

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.