Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [JAVA] Urgente,correzione Programma su Autobus

    Salve,
    vorrei chiedervi una mano per la correzione del mio esame di programmazione in Java.
    Ho 4 classi,Trasporto,Luogo,Linea,Biglietto.
    Ho il problema nell'ultima parte dell'elaborato.Mi chiede :
    "A partire da un luogo è possibile sapere quali sono le linee che vi fanno fermata tramite il metodo getLinee() della classe Luogo.
    Inoltre è possibile sapere quali linee hanno un capolinea in un dato luogo tramite il metodo getLineeCapolinea() della classe Luogo." .
    Questa è la classe Luogo:
    public class Luogo {

    private String nome;

    public Luogo(String nome) {
    this.nome=nome;
    }

    public String getNome(){
    return nome;
    }

    public Collection getLinee(){
    return null;
    }

    public Collection getLineeCapolinea(){
    return null;
    }
    }

    Questa è la classe Linea:
    public class Linea {

    private String nome;
    private boolean feriale;
    private boolean festivo;
    public ArrayList listaFermate = new ArrayList();
    private int fermate=-1;


    public Linea(String nome, boolean feriale, boolean festivo) {
    this.nome=nome;
    this.feriale=feriale;
    this.festivo=festivo;
    }

    public String getNome(){
    return nome;
    }

    public boolean isFeriale(){
    return feriale;
    }

    public boolean isFestivo(){
    return festivo;
    }

    public void addFermata(Luogo fermata){
    listaFermate.add(fermata);
    fermate++;
    }

    public List getFermate(){
    return listaFermate;
    }

    public Luogo getPrimoCapolinea(){
    return (Luogo) listaFermate.get(0);
    }

    public Luogo getUltimoCapolinea(){
    return (Luogo) listaFermate.get(fermate);
    }

    }

    Potete aiutarmi?

  2. #2
    Usando il comando getLinee,la funzione mi dovrà restituire tutte le linee che hanno la stessa fermata(o luogo) nel loro percorso.
    Quindi dovrei accedere all'arraylist nella classe Linea dalla classe Luogo e fare un confronto per ogni fermata,per poi inserirla in una linkedlist

  3. #3
    Nessuno???

  4. #4
    VVoVe:

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    per ottenere il getLinee dovresti scorrerti tutte le linee che saranno memorizzate in qualche struttura, e per ogni linea scorrerti tutte le fermate se c'è una fermata inquel luogo la aggigungi alla collection del luogo.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    le linee sono memorizzate nell'HashMap della classe Trasporto (la classe principale).Con quale comando riesco a scorrermi tutte le linee e i luoghi di altre classi(partendo dalla classe luogo)?
    Non so come accedere alle strutture dati HashMap e Arraylist
    Questa è la classe Trasporto.

    package autobus;



    import java.util.Collection;

    import java.util.HashMap;


    public class Trasporto {
    private String azienda;
    private String comune;
    private HashMap listaLinee = new HashMap();
    private HashMap listaLuoghi = new HashMap();

    public Trasporto(String azienda, String comune){
    this.azienda=azienda;
    this.comune=comune;
    }

    public String getAzienda(){
    return azienda;
    }

    public String getComune(){
    return comune;
    }

    public double setPrezzo(double prezzo) throws IllegalArgumentException {
    Biglietto b = new Biglietto(prezzo);
    if (prezzo<=0)
    throw new IllegalArgumentException();
    return b.setPrezzo(prezzo);
    }

    public double getPrezzo() {
    return Biglietto.getPrezzo();
    }

    public Linea creaLinea(String nome, boolean feriale, boolean festivo) throws IllegalArgumentException {
    Linea l = new Linea (nome,feriale,festivo);
    if (feriale==false && festivo== false)
    throw new IllegalArgumentException();
    listaLinee.put(nome,l);
    return l;
    }

    public Collection getLinee(){
    return listaLinee.values(); //avevo scritto
    //return (Collection) listaLinee;
    }

    public Linea getLinea(String nome){
    Linea auxlinea=(Linea)listaLinee.get(nome);
    return auxlinea;
    }

    public Luogo creaLuogo(String nome){
    Luogo fermata = new Luogo(nome);
    listaLuoghi.put(nome,fermata);
    return fermata;
    }

    public Collection getLuoghi(){
    return listaLuoghi.values(); //avevo scritto
    //return (Collection) listaLuoghi;
    }


    public Luogo getLuogo(String nome){
    Luogo auxluogo = (Luogo)listaLuoghi.get(nome);
    return auxluogo;
    }

    }

  7. #7
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    agli array list accedi agli elementi con il metodo get(indice); per la hash map devi accedere con le chiavi che puoi ottenere con i relativi metodi: prova a consultare la documentazione delle api per queste classi.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  8. #8
    Grazie per la tua pazienza.
    Il mio problema principale è : come accedere all'Arraylist della classe Linea partendo dalla classe Luogo (e di conseguenza,come accedere alla HashMap della classe trasporto partendo dalla classe Luogo)?

  9. #9
    Ho scritto questa funzione.Continua a darmi errore,ma se non altro ora riesco ad accedere all'Arraylist e HashMap delle altre classi impostandole come public.

    public Collection getLinee(){

    for (Iterator iter = ((Collection) Trasporto.listaLinee).iterator(); iter.hasNext() {
    Linea element = (Linea) iter.next();
    if(element!=null){
    for (int indice=0;indice<=element.fermate;indice++)
    if(element.listaFermate.get(indice).equals(nome)){
    elencoLinee.add(element);
    }
    }
    }
    return elencoLinee;
    }

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    cos'è nome? cos'e leenco?

    cge errore hai?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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