Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [JAVA] Array dinamici

  1. #1
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345

    [JAVA] Array dinamici

    Ciao a tutti.

    Di norma quando lavoro con Java ricorro alla classe Vector per implementare gli array dinamici. Per un esercizio universitario ho però ricevuto una specifica molto esaustiva in cui sono presenti le firme dei metodi e sono rimasto perplesso osservando un paio di esse.

    Uno dei metodi in questione dovrebbe restituire Comparable[] ma io non posso sapere a priori quanti elementi dovrò memorizzarci. Una soluzione brutta ed inefficiente, ma corretta, sarebbe quella di scorrere tutta la mia struttura dati una volta per contare quanti elementi di tipo Comparable rispondano ai requisiti, creare il vettore statico e scorrere di nuovo la struttura dati per riempire il vettore.

    Inutile dire che questa soluzione non mi soddisfa. Possibile che Java non implementi un meccanismo per ridimensionare il vettore senza perderne il contenuto o qualcosa di analogo? Credo proprio di no

    Saluti e grazie per l'aiuto.

  2. #2
    In java gli array sono statici, potresti però usare un vector per memorizzare gli elementi e poi il metodo toArray() per restituire un array di Object...

  3. #3
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345
    Originariamente inviato da V1RuZ
    In java gli array sono statici, potresti però usare un vector per memorizzare gli elementi e poi il metodo toArray() per restituire un array di Object...
    Non so se posso usare Vector, poichè java.util non viene incluso nello scheletro dell'esercizio. Ci sono altre alternative? Visto che la correzione si basa su un test automatico, non vorrei non compilasse...

  4. #4
    non fai prima a postare il testo dell'esercizio almeno si capisce un po meglio il tutto?

  5. #5
    la tua soluzione e' la "migliore" se non puoi usare Vector.

    potresti usare uno Stack , una lista o un coda....anche se Vector e' la manna dal cielo.

    posta il testo dfell'esercizio cosi' capiamo meglio.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Vorrei far notare che il Vector fa esattamente quello che a te è richiesto di fare a mano.

    Un Vector è un oggetto che al suo interno contiene un array di Object. Ad ogni inserimento questo array viene ricopiato in uno temporaneo e ne viene ricreato uno nuovo con 1 elemento in più (o n elementi in più se diversamente specificato nel costruttore). Poi l'array temporaneo viene ricopiato in quello nuovo e nell'ultimo elemento viene aggiunto l'oggetto passato al metodo add().


    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

  7. #7
    Ad ogni inserimento questo array viene ricopiato in uno temporaneo e ne viene ricreato uno nuovo con 1 elemento in più
    il Vector per default raddoppia ogni volta, non aggiunge un elemento (sarebbe algortimicamente disastroso!!)

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.