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

    Aiuto realizzazione struttura dati Java

    Ciao a tutti, sono nuovo del forum e mi interesso da un po' di programmazione, sia per motivi di studio che per piacere personale...
    Mi sono imbattuto però in un piccolo problema che non riesco a risolvere.
    Sto realizzando in Java un progettino per l'università e sono arrivato a questo punto:
    ho realizzato un metodo che mi restituisce un array di 5 oggetti (che funziona correttamente). In un altro metodo dovrei utilizzare i dati nell'array, in particolare dovrei tirar fuori da questo array l'elemento più piccolo (nella realizzazione dell'oggetto ho implementato l'interfaccia Compare e l'elemento più piccolo mi viene restituito con un x.compareTo(y) ). Fin qui nulla di difficile. Nel metodo dove utilizzo l'array però ho una condizione che mi fa o meno accettare l'elemento più piccolo dell'array. Nel caso questa condizione non venga verificata, mi basta che effettivamente mi venga restituito il più piccolo oggetto dell'array, nel caso la condizione non venga verificata, restituire il secondo elemento più piccolo dell'array, nel caso non venga veriicata ancora mi restituisce il terzo elemento più piccolo dell'array e così via.
    Come potrei realizzare questa situazione?????
    Io avevo pensato ad un iterator, che però purtroppo non conosco bene... Pensavo di creare un oggetto che mi contiene i 5 elementi dell'array e creare un iterator su questo oggetto, in modo che ad ogni oggetto.next() mi restituisse il primo, secondo, terzo (e così via) elemento più piccolo dell'array... E' una cosa fattibile secondo voi??? Come si potrebbe realizzare??? Funziona così l'interfaccia Iterator???

    Grazie a tutti coloro vorranno rispondermi...

  2. #2
    Questo è un esempio di codice che fa qualcosa di simile a quello che mi pare vorresti fare tu:
    codice:
    List list = new LinkedList( );
    list.add( new Integer( 10 ) );
    list.add( new Integer( 5 ) );
    list.add( new Integer( 3 ) );
    list.add( new Integer( 8 ) );
    list.add( new Integer( 2 ) );
    Collections.sort( list );
    for ( Iterator iterator = list.iterator(); iterator.hasNext(); )
    {
      Integer integer = ( Integer ) iterator.next();
      System.out.println( "integer = " + integer );
    }
    Naturalmente puoi sostituire gli Integer con i tuoi oggetti Comparable.

    Ciao,

  3. #3
    Grazie!!!! La cosa è estremamente più semplice di come la facevo io...
    Ora mi è anche più chiaro l'utilizzo di Iterator!!!

    Grazie mille!!!!

  4. #4
    Cavoli... mi sento quasi un incompetente...

    Ora mi sorge un altro problema... Scusatemi ma sono alle prime armi con Java...
    Come dichiaro in un metodo che devo restituire una LinkedList????
    Il metodo che ho creato io è:
    public Node[] createCandidateSet (Node nd)
    dove Node è il mio oggetto Comparable. Questo metodo mi retituisce un array di Node...
    Ma se devo restituire una LinkedList come suggeritomi da interarete come va cambiato???

    Se faccio
    public Node() createCandidateSet (Node nd)
    mi dice : invalid method declaration; return type required

    Sob Sob...

  5. #5
    Public List createCandidateSet (Node nd)

    Trovato, sono proprio un idiota!!!!

    Ciao a tutti!!!

  6. #6
    In riferimento al codice di interarete
    codice:
    List list = new LinkedList( );
    list.add( new Integer( 10 ) );
    list.add( new Integer( 5 ) );
    list.add( new Integer( 3 ) );
    list.add( new Integer( 8 ) );
    list.add( new Integer( 2 ) );
    Collections.sort( list );
    for ( Iterator iterator = list.iterator(); iterator.hasNext(); )
    {
      Integer integer = ( Integer ) iterator.next();
      System.out.println( "integer = " + integer );
    }
    all'interno del ciclo for ho una condizione che se verificata dovrebbe farmi uscire dal ciclo, ma a questo punto, come posso fare per uscire dal ciclo???

    Grazie

  7. #7
    Per uscire da un ciclo si usa l'istruzione break;

    Ciao,

  8. #8
    Di nuovo grazie!!!!!

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.