Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    Come distruggere o ridefinire una variabile tipo ARRAY?

    Salve vorrei sapere come fare questa cosa:
    int n_lati=3;
    int[] arr = new int [n_lati];

    adesso con una funzione "addLati(int n)"

    vorrei incrementare i lati "n_lati+=n"
    ovviamente dovrò anche aumentare le celle dell'array, visto che ogni cella contiene la lunghezza di ogni singolo lato.
    Come fare a ridefinire lo stesso array, o distruggerlo per ricrearlo con una nuova lughezza?
    Non vorrei definire un array da 100 celle e riempirle una alla volta, anche perchè java di default le riempie con il numero 0 se non sbaglio.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2
    La soluzione potrebbe essere

    codice:
    void addLati (int n) {
       // Creo un nuovo array
       int[] arr1 = new int[n_lati+n];
      
       // Copio le informazioni già contenute
       for (int i=0; i<n_lati; i++) arr1[i] = arr[i];
    
       n_lati += n;
       arr = arr1;
    }
    Dimmi se funziona.

    Se ti può interessare esiste già in java una classe che lavora in questo modo: la classe Vector, che si appoggia ad un array, che ne modifica le dimensioni in base alle necessità automaticamente.

  3. #3
    Ciao,

    il metodo più veloce (in termini di prestazioni) è usare arraycopy (vedi http://java.sun.com/j2se/1.4.2/docs/...%20int,%20int) )

    per un tutorial sul suo uso (e sull'uso degli array in generale) puoi vedere la pagina http://java.sun.com/docs/books/tutor...ts/arrays.html
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  4. #4
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Anche io per non saper ne leggere e ne scrivere ho fatto in quel modo (come Nophiq).
    Grazie a tutti.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  5. #5
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ho provato ad usare "arraycopy"
    " arraycopy(l_lato,0,park,0,l_lato.length-1); "

    Ma non funge, non la riconosce come funzione.....
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  6. #6
    ciao,

    in Java non esistono funzioni, ma metodi di classi (quando sono dichiarati statici) o di oggetti. Per invocare un metodo devi specificare la classe/oggetto (a meno che il metodo non sia invocato nella stessa classe/oggetto).

    Con questa premessa, arraycopy è un metodo statico della classe System. Pertanto per usarla usa System.arraycopy(...)
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  7. #7
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ok ora funge, non sapevo di dover usare System.arraycopy...
    Grazie nuovamente.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Nophiq
    Se ti può interessare esiste già in java una classe che lavora in questo modo: la classe Vector, che si appoggia ad un array, che ne modifica le dimensioni in base alle necessità automaticamente.
    A questo punto meglio ArrayList...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.