stavo chiudendo il browser quando ho visto che hai risposto.
Non ho letto il codice ma ti riassumo brevemente quello che...secondo me dovresti fare.
Il package java.util.* contiene le strutture dati più comunemente usate (molto ottimizzate).
Quella che ti serve a te è la hashset, cioè una tabella hash nel quale puoi inserire solo valore fregandotene della chiave. La hashset è solo un insieme di valore. La cosa interessante è che le operazioni quali inserimento, cancellazione, controllo della presenza sono molto performanti.
L'hashset non c'è bisogno che lo fai di mille posizioni. Aumenta automaticamente la sua capacità quando ci sono pochi spazzi disponibili. (in genera 1/4 dei posti deve essere libero).
Se sai gia inizialmente quanti elementi avrai puoi inizializzare l'hashset ad una tua dimensione grazie al costruttore:
HashSet(int initialCapacity)
Se devi aggiungere N elementi, crea un hash di N + N/2 .
L'hash set accetta solo puntatori ad oggetti quindi usa Integer per salvare i tuoi interi.
miohashset->add(new Integer(numero));
Semplicemente cosa farai? Generi un numero casuale, controlli se non è nella tabella hash. Se è presenti generi un nuovo numero. Se non è presente aggiungi questo numero nella tabella hash e nell'array.
Chiaro?

Rispondi quotando