# Vector - Wert ersetzen



## Java-Rookie (24. Mai 2006)

Hallo ärgere mich mal wieder mein einem Vector rum... 

Also bei meinem Array klappt folgendes:

```
public void setValueAt(Object value, int row, int col) {
	        data[row][col] = value;
	        fireTableCellUpdated(row, col);
	    }
```

wenn jetzt mein data kein array ist sondern dein Vector bekomme ich das ganze nicht hin... 

hab ich schon erwähnt das ich Vectoren so langsam hasse.....  :wink:


----------



## Java-Rookie (24. Mai 2006)

```
public void setValueAt(Object value, int row, int col) {
	        ((Vector)data.elementAt(row)).elementAt(col) = value;
	        fireTableCellUpdated(row, col);
	    }
```

funzt nicht... schade....!


----------



## Bert Brenner (24. Mai 2006)

Kommt ja auch drauf an. Du musst halt an der ensprechende stelle etwas einfügen, bzw.  erst mal dafür sorgen das der Vector auch gross genug ist.


----------



## L-ectron-X (24. Mai 2006)

Bert Brenner hat gesagt.:
			
		

> ...erst mal dafür sorgen das der Vector auch gross genug ist.


Öhm, ein Vector passt sich automatisch an die benötigten Dimensionen an.


----------



## Java-Rookie (24. Mai 2006)

gross genug ist er... ich will ja was einen wert ersetzten den es schon gibt... aber irgendwie finde ich den weg nicht dorthin... ?!?!?


----------



## L-ectron-X (24. Mai 2006)

Um eine Wert in einem Vector zu ersetzen gibts die Methode set().
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Vector.html#set(int, E)

Das Forum kann mit den Links nicht umgehen, kopiere ihn dir in die Adresszeile deines Browsers.


----------



## Bert Brenner (24. Mai 2006)

Passt sich nicht an wenn man remove/insert/setElementAt benutzt, das war gemeint.


----------



## Java-Rookie (24. Mai 2006)

hab ich auch schon probiert... aber das funzt nicht... dann mekkert eclipse immer das es keine variable ist... ?!?!?


----------



## L-ectron-X (24. Mai 2006)

Nun das wird nicht gehen:


			
				Java-Rookie hat gesagt.:
			
		

> ```
> ((Vector)data.elementAt(row)).elementAt(col) = value;
> ```



Das muss dann ein wenig anders aussehen.

```
Vector vec = (Vector)data.get(row);
vec.set(col, value);
```

Oder kompakter:

```
((Vector)data.get(row)).set(col, value);
```


----------



## Java-Rookie (24. Mai 2006)

also meine lösung war:

```
public void setValueAt(Object value, int row, int col) {
	        ((Vector)data.get(row)).add(col, value);
	        fireTableCellUpdated(row, col);
	    }
```

allerdings habe ich dann das problem das er den wert "einfügt" und nicht ersetzt.... werde mal deinen codeschnipsel ausprobieren....  :wink:

edit:

ist ja das selbe... lol


----------



## Java-Rookie (24. Mai 2006)

ha... ich habs!


```
public void setValueAt(Object value, int row, int col) {
	        ((Vector)data.get(row)).setElementAt(value, col);
	    }
```

trotzdem danke!  :toll:


----------



## norman (24. Mai 2006)

```
((Vector)data.get(row)).setElementAt(value, col);
```
führt doch zum gleichen Ergebnis wie 
	
	
	
	





```
((Vector)data.get(row)).set(col, value);
```
 ???:L


----------



## Java-Rookie (24. Mai 2006)

ne... bei mir nicht... 

bei dem einen fügt er ein element an dieses stelle ein.. und alle anderen rutschen eins nach hinten...


----------



## norman (24. Mai 2006)

darf ich das bestreiten?

weiter oben hattest du schonmal geschrieben, dass die methode von dir und lex gleich wären, aber da gabs den kleinen unterschied 'set' bzw 'add' ==> laut doku sind die beiden methoden (vom rückgabewert und der reihenfolge der parameter) identisch.


----------



## Java-Rookie (24. Mai 2006)

hab das dann wohl oben überlesen... (add und set)


----------

