Nochmal zweidimensionaler Vector

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Forum,

ich habe es leider immer noch nicht geschafft, das zweidim. Vector zu erstellen.

Code:
x = new Vector(1,1);
y = new Vector(1,1);
x.addElement(y);

Macht das Sinn?
Wie packe ich double-Werte da rein?
Wie kann ich darauf zugreifen?

Gruß,
Andi[/code]
 
B

Beni

Gast
Mit Java 1.4 sieht das etwa so aus:
Code:
int size = 2345;
Vector x = new Vector( size );
for( int i = 0; i < size; i++ )
  x.add( new Vector( size ));

((Vector)x.get( 3 )).add( Double.valueOf( 12.34 ));
double z = ((Double)((Vector)x.get(3)).get(0)).getDoubleValue();

Und mit Java 1.5:
Code:
int size = 2345
Vector<Vector<Double>> x = new Vector<Vector<Double>>();

for( int i = 0; i < size; i++ )
  x.add( new Vector<Double>() );

x.get(3).add( 12.34 );
double z = x.get(3).get(0);
 
G

Guest

Gast
Prima, vielen Dank!

Für eine quadratische Matrix müsste ich dann wohl folgendes angeben:

Code:
for( int i = 0; i < size; i++ ) 
  x.add( new Vector<Double>(size) );

Was mir allerdings noch etwas umständlich erscheint:
Ich möchte per Methode das Array um eine Zeile/Spalte erweitern.
Muss ich dann erst alle Spalten auslesen und um eins erweitern?
 
B

Beni

Gast
Hm? Vergiss nicht, ein Vector hat die Länge 0, solange keine Werte eingetragen wurden...
Also, um eine quadratische Matrix zu haben, müsste man noch für jeden inneren Vector eine Schleife machen, und ihn auffüllen.

Ach ja, ein Vector ist kein Array! Ein Vector ist eine Liste die dynamisch ihre Grösse ändern kann. Ein Array hat immer dieselbe Grösse (das ist doch ein wichtiger Unterschied).

Wäre es für dich vielleicht einfacher, einen echten Array zu verwenden?

Code:
double[][] array = new double[4][6];
array[1][2] = 45.432;
double z = array[1][2];

[Edit]
Ja, du müsstest alle Vectoren auslesen, und erweitern, um die Matrix grösser zu machen.
 
G

Guest

Gast
Wow, Beni, da bin ich ja gleich an den richtigen geraten!

Ich habe das mit double[][] auch schon probiert.
Das große Problem: diesem muss ich als Klassenvariable eine feste Größe geben. Ich kann dann in der Methode nicht mehr mit Gewalt die Größe ändern.

Hier mein erster Code:

Code:
public class BOMatrix extends Matrix{ 
    
    private double werte[][]; 
    private double werte_neu[][]; 
    public Vector BOb; 
    
    /** Creates a new instance of BewertungsObjektMatrix */ 
    public BOMatrix() { 
        super(); 
        BOb = new Vector( 0, 1 ); 
        werte = new double[1][1]; 
    } 
    
    //** Neue Spalte für Matrix hinfügen*/ 
    public void BOHinzufuegen(String name, String beschreibung){ 
        BOb.addElement( new Bewertungsobjekt( name, beschreibung) ); 
        // Die Größe des Array muss angepasst werden: 
        double werte_neu[][] = new double[BOb.size()][BOb.size()]; 
        System.arraycopy(werte, 0, werte_neu, 0, werte.length); 
               double werte[][] = new double[BOb.size()][BOb.size()]; 
        System.arraycopy(werte_neu, 0, werte, 0, werte_neu.length); 
        }

Ich hoffe, du verstehst das Problem:
Habe ich der Klassenvar. einmal eine Größe gegeben [1][1], kann ich sie auch in der Methode nicht mehr ändern. Es werden einfach nur die Werte bis [1][1] (also nur ein Wert) in die Klassenvar. zurückgeschrieben.

Da dachte ich an Vector...
 

mic_checker

Top Contributor
1) Insofern du nicht synchronisieren musst -> nimm ArrayList
2) Mach ne ArrayList, in die du die ArrayList reinpackst. Wenn du in die "äußere" ArrayList eine ArrayList hinzufügst wäre das als ob du eine Spalte hinzufügst....wenn du in die inneren was hinzufügst , entspricht das den Zeilen.
 
G

Guest

Gast
Soweit, so gut:

Code:
public void BOHinzufuegen(String name, String beschreibung){
        BOb.addElement( new Bewertungsobjekt( name, beschreibung) );
        x.setSize(BOb.size());
             for( int i = 0; i < BOb.size(); i++ ) {
                x.add(i, new Vector<Double>(BOb.size(),1) );
             }
    }

Problem: der neue Vector in x hat immer die Größe 0, obwohl BOb.size() tatsächlich wächst.
 

mic_checker

Top Contributor
x soll dein "äußerer" Vektor sein ?

U. was ist B0b ?

Eigentlich sollte das ganze kein Prob sein - gib deinen Variablen auch mal bessere Namen - damit man am Namen schon erkennt was damit gemacht wird.

Code:
List spalten = new ArrayList();

List reihe1 = new ArrayList();
reihe1.add(...);
reihe1.add(...);

List reihe2 = new ArrayList();
reihe2.add(...);
reihe2.add(...);

spalten.add(reihe1);
spalten.add(reihe2);

//etc. pp.
 
G

Gast

Gast
BOb ist ein andere Vector, dessen Größe die Größe des Vectors x ändert.
Ich muss das daher in eine Schleife packen.
Außerdem würde ich ganz gerne bei Vector bleiben.

Das ganze beinhaltet double werte. Wie würdest du bei deiner Lösung auf double bei den Koordinaten x,y zugreifen?
 

mic_checker

Top Contributor
Warum bei Vector bleiben ? Abgesehen von den synchronisierten Methoden hast du keinen Vorteil - aber egal...

Sagen wir du willst auf die 2 Spalte und 3 Reihe zugreifen:

Code:
// matrix wurde vorher richtig mit werten belegt 

// zuerst holst du dir die zweite spalte
List myReihe = spalten.get(1);

// jetzt kannst du in der zweiten Spalte auf die 3 Reihe zugreifen
System.out.println(myReihe.get(2));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
E nochmal synchronisierte Methoden Java Basics - Anfänger-Themen 5
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
B Unique ID nochmal Unique machen Java Basics - Anfänger-Themen 20
X Wenn Exception dann nochmal try. Java Basics - Anfänger-Themen 7
R Nochmal Quaxli Spieletutorial ;) Java Basics - Anfänger-Themen 9
V Nochmal Hilfe - Replace Methode Java Basics - Anfänger-Themen 2
T Override klappt nochmal wie? Java Basics - Anfänger-Themen 3
Haubitze_Broese Methode am ende nochmal startet? Java Basics - Anfänger-Themen 8
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7
D C0 und C1 Test nochmal Java Basics - Anfänger-Themen 9
B könnte nochmal jemand über mein Projekt schauen? Java Basics - Anfänger-Themen 4
C Nochmal zu lokale Einstellungen Java Basics - Anfänger-Themen 2
G nach Thread.start(); nochmal start(); aufrufen geht nicht Java Basics - Anfänger-Themen 4
S Fehler durch Exception beheben und nochmal versuchen Java Basics - Anfänger-Themen 4
U Nochmal was zum Date(); Java Basics - Anfänger-Themen 23
F nochmal Array Declaration Java Basics - Anfänger-Themen 2
G Nochmal vereinfacht - hoffe mer kanns nachvollziehen Java Basics - Anfänger-Themen 9
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
ven000m Char einlesen, wie ging das nochmal? Java Basics - Anfänger-Themen 9
D Nochmal zu den dummen Eingaben über Tastatur Java Basics - Anfänger-Themen 15
B Nochmal ich/ Graphik wird nicht angezeigt ? Java Basics - Anfänger-Themen 12
G Nochmal Problem mit Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 3
B nochmal ich / jdk1.5 Java Basics - Anfänger-Themen 5
S nochmal Taschenrechner ;) Java Basics - Anfänger-Themen 16
B Nochmal NoClassDefFoundError Java Basics - Anfänger-Themen 3
megachucky nochmal JDBC. komme nicht weiter. Java Basics - Anfänger-Themen 4
K nochmal Jtable Java Basics - Anfänger-Themen 5
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
L Zweidimensionaler Array; n x m - Matrix überprüfuen Java Basics - Anfänger-Themen 35
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
P Objekte in Vector werden überschrieben Java Basics - Anfänger-Themen 4
P Array in Vector speichern Java Basics - Anfänger-Themen 2
E Methoden new Vector().add(x).add(x); ? Java Basics - Anfänger-Themen 5
F Vector istGeordnet Java Basics - Anfänger-Themen 15
R Vector-Filterfunktion Java Basics - Anfänger-Themen 4
Todesbote Map (Key=String; Value = Vector) Value/Vector sortieren Java Basics - Anfänger-Themen 13
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
M Vector eines Vectors einzeln ausgeben Java Basics - Anfänger-Themen 9
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
J Erzeugung eines Vector-Objekts - Frage zum Typ Java Basics - Anfänger-Themen 3
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
A Author in Vector Java Basics - Anfänger-Themen 22
M Vector überschreibt Elemente bei add()-Methode Java Basics - Anfänger-Themen 10
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
B Globale vector? Java Basics - Anfänger-Themen 7
E 2 Dimensionaler Vector Java Basics - Anfänger-Themen 5
T Map<String, Vector>? Java Basics - Anfänger-Themen 11
P Collections Vector füllen in for-Schleife Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
M 2D Vector Java Basics - Anfänger-Themen 2
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
E Datentypen Klasse Vector aus der Standard-API anwenden Java Basics - Anfänger-Themen 7
D Klasse Vector entwerfen Java Basics - Anfänger-Themen 7
A Arrays vs Liste vs Vector Java Basics - Anfänger-Themen 30
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
S Datentypen Vector auslesen Java Basics - Anfänger-Themen 12
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
T Vector-Positin anzeigen Java Basics - Anfänger-Themen 3
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
C Vector<Object> Probleme Java Basics - Anfänger-Themen 38
C Datentypen Probleme mit Vector.contains() Java Basics - Anfänger-Themen 10
M Datentypen function(Vector<SuperClass>), Vector<Subclass> Java Basics - Anfänger-Themen 6
L Vector Sortieren Java Basics - Anfänger-Themen 8
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
kitz Telefonbuch (Vector) Java Basics - Anfänger-Themen 17
E Arraylist mit Daten aus Vector füllen Java Basics - Anfänger-Themen 7
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
F Vector wird überschrieben Java Basics - Anfänger-Themen 8
T Vector sortiern Java Basics - Anfänger-Themen 7
C Frage zu Vector und muliplizieren des Inhaltes Java Basics - Anfänger-Themen 2
S Vector von eigenen Klassen Java Basics - Anfänger-Themen 2
J Collection Vector Java Basics - Anfänger-Themen 8
Streeber ArrayList/Vector, mehrdimensional Java Basics - Anfänger-Themen 11
N Was ist der Unterschied zwischen ArrayList und Vector? Java Basics - Anfänger-Themen 3
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
B Hilfe zum einem Problem mit Vector Java Basics - Anfänger-Themen 8
H Vector - Fehler? Java Basics - Anfänger-Themen 2
babel einen Vector nach Datum sortieren Java Basics - Anfänger-Themen 21
T Array-Vector Problem Java Basics - Anfänger-Themen 18
P Vector und Exception Java Basics - Anfänger-Themen 7
K Vector Java Basics - Anfänger-Themen 3
K Vector Java Basics - Anfänger-Themen 10
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
T Object aus Vector übergeben Java Basics - Anfänger-Themen 2
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben