Vektoren

Status
Nicht offen für weitere Antworten.

Fridolin

Bekanntes Mitglied
Hallo,
eine Frage zu Vektoren: Wie schafft man es einen befüllten Vektor einem DefaultTableModel
so zu übergeben, das nicht nur das erste Element zweimal, sondern alle Elemente einmal drinnen
vorkommen. Es gibt zwei Zeilen mit je vier Einträgen in der Datenbank.

Code:
Vector rows = new Vector();
Vector newrow = new Vector();

while( resultSet.next() )
{
    for(int i = 1; i <= metadata.getColumnCount(); i++)
    {
    newrow.addElement(resultSet.getObject(i));
    }
rows.addElement(newrow);
}

und

Code:
Vector spalten = new Vector();
spalten.addElement("ID");
spalten.addElement("NAME");
spalten.addElement("DAUER");
spalten.addElement("ALTER");

model = new DefaultTableModel(rows, spalten)
{
    public boolean isCellEditable(int row, int col) 
    {
    return false;
    }
};
 
B

Beni

Gast
Eigentlich sollte es reichen, wenn du jedesmal einen neuen Vektor erstellst:

Code:
while( resultSet.next() ){
    newrow = new Vector(); // <<<<<<<<<<<<<<<<<<<<<<<<

    for(int i = 1; i <= metadata.getColumnCount(); i++){
      newrow.addElement(resultSet.getObject(i));
    }
rows.addElement(newrow);
}
 
G

Guest

Gast
Code:
public class ReadNumbers {

	public static void main(String[] args) {

		In.open("measurements.txt");

		while (In.done()) {
			// Einlesen einer Zahlenfolge
			readSequence();
			Out.println();
		}

	}

	private static void readSequence() {


		double val;
		char ch;
		double valy;



		valy = In.readDouble(); // Einlesen des ersten Wertes
		if (! In.done()) // return when no values
			return;
		Out.print(valy);
		ch = In.readChar(); // Lesen des Doppelpunkts
		Out.print(ch); 

		do {
			val = In.readDouble(); // Einlesen der Werte
			Out.print(val);<--- Wie kann ich diese Variable auslesen und in eine vektorvariable
                                                                            umwandeln und dann später auslesen für den Mittelwert und
                                                                           die Standartabweichung?  


     		ch = In.readChar(); // Einlesen von ',' oder '.'
			Out.print(ch);
		} while (ch != '.');

	}

}

In der Datei measurements stehen Daten einer Messung:

Wie z.b.

10.0: 12.0, 10.01, 9.9, 9.99.
11.0: 12.3, 10.1, 9.7, 9.97.
12.0: 11.3, 10.2, 9.6, 9.3.
11.0: 12.1, 10.4, 9.5, 9.66.
10.0: 11.1, 10.08, 9.5, 9.78.


Ich weis ist eine dumme frage aber auf der uni sind wir noch nicht bei diesem kapitel und sonst fällt mir keine andere Lösung ein wie man diese Werte auslesen kann und speichern kann.
 
S

SlaterB

Gast
vor der Schleife erstellst du dir ein Vector-Objekt,
in der Schleife fügst du jeden gelesenen Wert in den Vector ein,

dann hast du am Ende der Schleife einen Vector mit allen Werten
wer hätte das gedacht ;)
 
G

Guest

Gast
jo muss nur noch herazsfinden wie man das mit den vektoren macht *G*
 
G

Gast

Gast
kann mir jemand posten wie das aussehen könnte, das war mein Versuch:

Code:
import java.util.* ;

public class ReadNumbers01 {

	public static void main(String[] args) {

		In.open("measurements.txt");

		while (In.done()) { // Einlesen einer Zahlenfolge


		   Vector Sollwert = new Vector();
		   Vector Messwerte = new Vector();

		   double valy;
		   double val;
		   char ch;

		   valy = In.readDouble(); // Einlesen des ersten Wertes
		   Sollwert.addElement(valy);

		   if (! In.done()) // return when no values
		   return;
		   for (int j=0; j < Sollwert.size();j++)
		    Out.println(j + " : " + Sollwert.elementAt(j));

		   ch = In.readChar(); // Lesen des Doppelpunkts
		   Out.print(ch);

		   do {
				val = In.readDouble(); // Einlesen der Werte
				Messwerte.addElement(val);
				for (int j=0; j < Messwerte.size(); j++)
				  Out.println(j + " : " + Messwerte.elementAt(j));

				ch = In.readChar(); // Einlesen von ',' oder '.'
				Out.print(ch);

		   } while (ch != '.');
	   }
   }
}
 
G

Gast

Gast
oder kann man das einlesen der Werte auch anders bewerkstelligen ohne Vektoren?
 
S

SlaterB

Gast
die vorherige Version mit Uteroperation
private static void readSequence() {
}

war sehr viel besser, wieso hast du das aufgelöst?

Variablen schreibt man klein

du schaffst es nun die Werte in einen Vektor zu legen,
nicht schlecht, was ist nun deine Frage?
niemand kann dir sagen, was damit passieren soll

alles ist ohne Vectoren machbar, alternativ gibt es z.B. eine ArrayList oder auch ein Array,
aber das Konzept 'Werte in eine Liste tun' wird kaum ohne irgendeine Art von Liste zu verwirklichen sein,
es sei denn das Konzept selber wird geändert

wieder zum x-ten Mal die Frage:
was willst du tun, was ist das Problem?

'ist das so gut?', 'wie macht man dies?' ohne genaue Beschreibung bringt dich nicht weiter
 
G

Gast

Gast
naja ich habe es aus der methode raus genommen weil ich angst gehabt habe das ich die vektoren nicht mehr verwenden kann weil ja die methode dann beendet wird.

Ich möchte Vektoren verwenden da sich die Anzahl der Messwerte und auch die Anzahl der Sollwerte erhöhen könnte.

Das Problem ist das ich nicht weis wie ich am besten die while schleife stoppen soll um die ersten Messwerte und die Sollwert auslesen zu können da die messwete ja beim 2ten Durchlauf überschrieben werden.

geht das mit einem bolschen Wert?

Meine frage daher kann ich die ganze while schleife in eine methode packen und trozdem die vektoren verwenden muss ich sie dazu rausheben und static setzen?
 
S

SlaterB

Gast
> Das Problem ist das ich nicht weis wie ich am besten die while schleife stoppen soll um die ersten Messwerte und die Sollwert
> auslesen zu können da die messwete ja beim 2ten Durchlauf überschrieben werden.

dieser Satz ist in sich unsinnig ;)
wenn du keinen zweite Durchlauf machen möchtest dann führe ihn gar nicht erst aus,
wozu eine Schleife wenn du nach dem ersten Durchlauf abbrechen willst?
einfach Schleife weg, dann gibt es nur einen Durchlauf ;)

wahrscheinlich willst du die anderen Werte aber auch irgendwann haben,
also ist das ganze wohl noch nicht so richtig zu Ende gedacht


----------

eine Operation hat immer einen Rückgabewert,
wenn du nur einen einzelnen Vector hast, dann kannst du den also einfach an den Aufrufer zurückgeben,
problematisch wird es bei verschiedenen Rückgabewerten,
z.B. ein Double am Anfang der Zeile + ein Vector für die Werte dahinter,

da helfen dann (sehr unsauber) statische Variablen,
oder doch die normale Rückgabe eines Objektes, und zwar eines Objektes, das die anderen beiden enthält,

ganz generische z.B. wieder ein Vector, Liste oder Array,
alternativ ein Objekt einer eigens definierten Hilfsklasse
 
G

Gast

Gast
Ich hab mal auf dei vektoren verzichtet weil es mir dann einfach zu kompliziert wird.

Habs jetzt auf eine andere Art gelöst. Das Problem ist jetzt das ich nicht genau weis wie ich jetzt valy,val1,..

in die main übertrage!

Code:
public class ReadNumbers {

	public static void main(String[] args) {

		In.open("measurements.txt");

			// Einlesen einer Zahlenfolge
			readSequence();
			Out.println();


	}

	private static void readSequence() {

		double val=0;
		double valy=0;
		double val1=0;
		double val2=0;
		double val3=0;
		double val4=0;
		char ch;
		int i=0;

		valy = In.readDouble(); // Einlesen des ersten Wertes
		if (! In.done()) // return when no values
			return;
		Out.print(valy);
		ch = In.readChar(); // Lesen des Doppelpunkts
		Out.print(ch);

		do {
			val = In.readDouble(); // Einlesen der Werte
			i= i + 1;
			switch (i) {
				case 1:
				val1=val;
				case 2:
				val2=val;
				case 3:
				val3=val;
				case 4:
				val4=val;
				}
			Out.print(val);
			ch = In.readChar(); // Einlesen von ',' oder '.'
			Out.print(ch);
		} while (ch != '.');
		Out.println();
		Out.println(valy +":" + val1 + "," + val2 + "," + val3 + "," + val4 + ".");

	}
}
 
S

SlaterB

Gast
zur Übertragung habe ich alle Möglichkeiten schon aufgezählt,
mehr als wiederholen ginge da nicht ;)
 
G

Guest

Gast
wenn du dir das programm einmal anschaust wirst du feststellen das es ein neues problem ist und leider kann ich mit deinen beschreibungen noch nicht sehr viel auskenne da ich mich mit java erst seit ca. 3wochen beschäftige.

Ich will nur wissen wie man jetzt die werte aus der einen methode in die main Methode überträgt

mfg Robi[/b]
 
S

SlaterB

Gast
dann wiederhole ich es eben, wenn du gerne nochmal das gleiche liest..:

es gibt eine Randbedingung, nämlich dass eine Operation nur ein Rückgabewert haben kann,

wenn man aber mehrere Werte hat dann bleiben zwei unterschiedliche Ansätze:
1.: die vielen Werte in einem anderen Objekt verpacken, so wie ein Paket bei der Post,
z.B. Liste, Array, Vector, eigener Datentyp
in der main dann wieder entpacken,

2. die Daten irgendwo anders speichern, an einem ''Ort', auf den beide zugreifen können,
das trifft ja strenggenommen auch auf das Paket aus 1. zu,
alternativ statische Variablen oder Objektvariablen, wenn Aufrufer und Operation zu einem Objekt gehören (bei main nicht möglich)

das habe ich doch so schon gesagt?
was kann man daran denn nicht verstehen, das sind doch ganz klar dargestellte Möglichkeiten,

mit deinen bisherigen Künsten sollten dir beide Varianten möglich sein
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Vektoren Java Basics - Anfänger-Themen 11
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
J Vektoren (2-dimensional) Java Basics - Anfänger-Themen 2
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
D Vektoren Initialisieren Java Basics - Anfänger-Themen 1
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3
M n-dim Vektoren mit Arrays Java Basics - Anfänger-Themen 3
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
J Wie erstelle ich Vektoren? Java Basics - Anfänger-Themen 5
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Vektoren, Methode Java Basics - Anfänger-Themen 10
S 3D Cube aus Vektoren Java Basics - Anfänger-Themen 20
G Vektoren speichern Java Basics - Anfänger-Themen 3
N Vektoren multiplizieren Java Basics - Anfänger-Themen 8
N Ausgabe von Vektoren Java Basics - Anfänger-Themen 3
L Suche Hilfe , Problem mit Vektoren und klassen Java Basics - Anfänger-Themen 21
R Vektoren Java Basics - Anfänger-Themen 6
S Vektoren und Objektwerte Java Basics - Anfänger-Themen 4
V Vektoren zur Laufzeit erzeugen Java Basics - Anfänger-Themen 7
J Durchlaufen von Vektoren Java Basics - Anfänger-Themen 14
F Ein Array von Vektoren, Eclipse meckert Java Basics - Anfänger-Themen 12
M Prinzipielle Frage zu Vektoren Java Basics - Anfänger-Themen 2
H Vektoren aus einem String! Java Basics - Anfänger-Themen 2
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
W Verwalten von Objekten - Listen, Vektoren usw. Java Basics - Anfänger-Themen 6
M Zwei ineinanderverschachtelte Vektoren - generics möglich? Java Basics - Anfänger-Themen 3
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben