Visualizzazione dei risultati da 1 a 2 su 2

Discussione: array JAVA

  1. #1

    array JAVA

    se inizializzo un array così:
    int[] x= new int[dim];
    come faccio a variare dinamicamente la dimensione dell'array?

  2. #2
    L'array ha questo fattore negativo , una volta inizializzato ad una dimensione non lo si può far variare .
    Per fare ciò devi creare un nuovo array della dimensiona che ti serve e poi copiarci i vecchi valori sopra.
    Questo è il codice da scrivere se non usi la classe Vector

    public class temp{
    public static void main(String []args){
    //Inizializzo l'array con dimensione 5
    int x[]=new int[5];
    //Lo rimepio con dei valori crescenti
    for(int i=0;i<x.length;i++)
    x[i]=i;
    //Lo visualizzo
    visualizza(x);
    //nel caso volessi ridimensionare l'array x
    //dovrei fare una cosa del genere
    //Creo un nuovo array di dimensione doppia

    int tmp[]=new int[x.length*2];
    //Gli copio il vecchio mediante il metodo statico di System
    //arraycopy(Origine,partenza,destinazione,partenza,n °elementi)

    System.arraycopy(x,0,tmp,0,x.length);
    //Per mantenere lo stesso nome
    x=tmp;
    //Canello il riferimento dell'array temporaneo
    tmp=null;
    //Ora posso aggiungere anche altri elementi
    x[5]=6;
    //Visualizzo . Si potrebbe anche creare una variabile che
    //tenga conto anche del numero di elementi presenti nell'array
    //evitando così di visualizzare gli spazi inutilizzati
    // dell'array.

    visualizza(x);
    }

    private static void visualizza(int x[]){
    for(int i=0;i<x.length;i++)
    System.out.print(x[i]+" ");
    System.out.println();
    }

    }

    A grandi linee questo è ciò che fa la classe Vector.
    Puoi vedere come il codice sia più leggero utlizzandola

    import java.util.*;

    public class temp{
    public static void main(String []args){
    Vector x=new Vector(5);
    for(int i=0;i<5;i++)
    x.add(new Integer(i));
    visualizza(x);
    x.add(new Integer(8));
    x.add(new Integer(9));
    x.add(new Integer(11));
    visualizza(x);
    }

    private static void visualizza(Vector x){
    for(int i=0;i<x.size();i++)
    System.out.print(x.get(i));
    System.out.println();
    }

    }

    Spero di essere stato chiaro e di non averti ctreato più dubbi

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.