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

    [Java] Aggiornare un Vector

    Salve a tutti,
    ho un problemino con un Vector ma credo si lo stesso anche se uso un ArrayList.

    Dunque, poiché non conosco inizialmente il numero dei valori non posso usare
    un Array ma devo usare un Vector o un ArrayList.
    Il problema che non riesco a risolvere è che,
    se uso un Vector
    codice:
    Vector<Double> myVector = new Vector<Double>();
    e gli vado ad aggiungere un certo numero di valori
    codice:
    myVector.add(2.55);
    myVector.add(3.15);
    myVector.add(2.09);
    Se vado a sostiuire il valore all'indice 1 con un altro
    codice:
    myVector.set(1, 5.23);
    il Vector aumenterà di grandezza, slittando gli elementi
    successivi all'indice variato di una posizione
    codice:
    myVector.get(1) => 2.55;
    myVector.get(1) => 5.23;
    myVector.get(1) => 3.15;
    myVector.get(1) => 2.09;
    Invece vorrei evitare questa situazione e
    far in modo che il Vector non cambi di dimensione
    ma solo il valore sostituito nel determinato indice....
    codice:
    myVector.get(1) => 2.55;
    myVector.get(1) => 5.23;
    myVector.get(1) => 2.09;
    Grazie a Tutti per l'attenzione.

    PS: mentre scrivevo mi si è accesa la lampadina....
    rimuovere l'indice X e poi aggiungere il nuovo valore all'indice X

    codice:
    myVector.remove(1);
    myVector.add(1, 5.23);
    ....penso si giusto!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [Java] Aggiornare un Vector

    Originariamente inviato da Wolvy23
    Se vado a sostiuire il valore all'indice 1 con un altro
    codice:
    myVector.set(1, 5.23);
    il Vector aumenterà di grandezza
    No, sostituisce, rimpiazza.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Si è vero che stupido, ci sarà qualcosa
    nel codice che mi fa variare il Vector.

    PS: per la serie sei come San Tommaso, ecco una verifica...
    codice:
    import java.util.Vector;
    
    public class ProvaVector {
    	private Vector<Double> myVector;
    
    	public ProvaVector() {
    		myVector = new Vector<Double>();
    		setVector();
    		
    		//sostituisce l'index 1
    		myVector.set(1, 10.45);
    		verifica();
    	}
    	
    	private void setVector() {
    		myVector.add(1.45);
    		myVector.add(2.34);
    		myVector.add(3.16);
    		myVector.add(4.78);
    		
    		verifica();
    	}
    	
    	private void verifica() {
    		System.out.print("\ngrandezza: "+myVector.size());
    		
    		for(int x=0; x<myVector.size(); x++) {
    			System.out.print("\nvalore indice "+x+": "+myVector.get(x));
    		}
    	}	
    	
    	public static void main(String[] args) {
    		new ProvaVector();
    
    	}
    }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    e infatti funziona correttamente come ci si aspetta:

    codice:
    java ProvaVector
    
    grandezza: 4
    valore indice 0: 1.45
    valore indice 1: 2.34
    valore indice 2: 3.16
    valore indice 3: 4.78
    grandezza: 4
    valore indice 0: 1.45
    valore indice 1: 10.45
    valore indice 2: 3.16
    valore indice 3: 4.78
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Infatti è così;
    il problema era nel mio codice
    (non quello di esempio) che
    mi andava ad alterare il Vector.

    Ciao e 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 © 2024 vBulletin Solutions, Inc. All rights reserved.