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

    Esercizio array espandibili

    In questo esercizio:

    codice:
    Si realizzi una classe Java, denominata ListOfArray<E> che implementi
    l'interfaccia OrderedSet<E> (mostrata nella pagina seguente). La nuova classe
    ListOfArray<E> mantiene gli elementi dell'insieme all'interno di array di
    dimensione fissa pari a 100. Quando lo spazio allocato nella struttura non č pił
    sufficiente per contenere tutti gli elementi inseriti viene creato un nuovo array di
    dimensione 100 che permette di estendere lo spazio disponibile.
    Tutti gli array allocati nella struttura sono organizzati in una lista linkata semplice.
    Gli elementi sono memorizzati in ordine non decrescente.
    Si realizzi in seguito una classe che implementi l'interfaccia Person (mostrata nella
    pagine seguente) e si fornisca un programma Java che prenda in input un file
    contenente una lista di persone (specificate da nome, cognome ed etą) e restituisca
    in output la medesima lista ordinata in senso non decrescente secondo i campi
    cognome, nome ed etą.
    L'insieme deve essere gestito attraverso una classe ListOfArray<Person>.
    
    Input
    Il file di input contiene una sequenza di stringhe, una per riga, terminanti con il
    simbolo “ ;” (punto e virgola). Ciascuna stringa contiene, in ordine, il nome il
    cognome e l'etą di una persona
    Output
    Il file di output contiene la medesima sequenza di stringhe del file di input ordinate
    in senso non decrescente, in base ai campi cognome, nome ed etą.
    codice:
    Di seguito č riportato il codice delle interfacce Person e OrderedSet
    public interface Person {
    public void setNome(String nome);
    // setta il nome della persona
    public void setCognome(String cognome);
    // setta il cognome della persona
    public void setAnni(int anni);
    // setta l'etą della persona
    public String getNome();
    // ritorna il nome della perona
    public String getCognome();
    // ritorna il cognome della persona
    public int getAnni();
    // ritorna l'etą della persona
    public int compareTo(Person person);
    // ritorna un valore maggiore di 0 se la persona ha un valore
    pił grande di person; 0 se hanno due valori uguali; un intero
    minore di 0 altrimenti
    }
    
    
    public interface OrderedSet<E> {
    // ritorna true se l'insieme č vuoto
    public boolean isEmpty();
    // ritorna il numero di elementi contenuti nell'insieme
    public int size();
    // inserisce un nuovo elemento nell'insieme
    public void add(E element);
    // elimina il primo elemento di valore element
    public void remove(E element);
    // ritorna true se l'emento element č presente nell'insieme
    public boolean isPresent(E element);
    // ritorna l'elemento pił piccolo dell'insieme
    public E getFirst();
    // ritorna l'elemento pił grande dell'insieme
    public E getLast();
    // stampa la lista ordinata degli elementi dell'insieme
    public String toString();
    }
    Allora, per il funzionamento del programma dato che bisogna fare dei confronti con stringhe, poichč in input il file contiene nome cognome e ann delle persone dovrei avere dei problemi nell'utilizzare il compareTo, allora ho pensato di fare estendere al tipo generico <E> la classe Comparable, solo che dal momento che il metodo compareTo č gia presente nella classe Comparable, basterebbe che in quello della mia interfaccia faccia un return di compareTo stesso?
    Se gią esiste non saprei come implementarlo.

    Il problema č poi nel metodo add(), dovrei fare un inserimento ordinato forse?
    E' un pņ complicato penso gestire il fatto di dovere inserire l'elemento in modo ordinato in una lista che contiene array......

  2. #2
    Qualcuno saprebbe aiutarmi?

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.