Datenstruktur Tabelle

Malte Roessner

Grünschnabel
Hallo,
ich bin etwas aus der Übung im Programmieren.
ich suche eine Möglichkeit eine Tabelle in java abzubilden.
was mir dazu bisher eingefallen ist ist eine Vector - Vector Kombination.
meine Codeversuche sind die folgenden.
in meiner TestMain will ich Daten einer Zeile mit addElementtoZeile füllen und diese Zeile danach mit addElementTab an die Tabelle anfügen.

hier meine TestMain

Code:
public class TestMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//AuswahlGui a = new AuswahlGui();
		//a.addComponenten();
		//a.dispose();
		Rsp r= new Rsp();
		
		r.addElementtoZeile("a");
		r.addElementtoZeile("b");
		r.addElementtoZeile("c");
		r.addElementTab(r.getZeile());
		
		r.addElementtoZeile("d");
		r.addElementtoZeile("e");
		r.addElementtoZeile("f");
		r.addElementTab(r.getZeile());
	
		for (int i=0; i<r.getTab().size(); i++){
			System.out.println("Zeile: " + i);
			Vector v = (Vector)(r.getTab().elementAt(i));
			System.out.println(v.size());
			for (int j=0; j<v.size(); j++){
				System.out.println("Spalte: " +j);
				System.out.println(v.elementAt(j));
			}
		}
	}
}
hier nun mein Versuch der Tabellenstruktur der leider noch nicht funktioniert
Anmerkungen im Quelltext als Kommentar.
Was mir wichtig ist ich würde das alles gerne mit Members von der Klasse Rsp
belassen.
Wenn mir jemand n Tipp hat wie ich die Rsp - Klasse abändern kann, damit das ganze funkt wäre ich sehr dankbar

Code:
public class Rsp {
	public Rsp(){
		
	}
	
	
		/**
		* fügt der aktuellen Zeile je ein Feld an
		*/
		public void addElementtoZeile(Object o){
			
			v_zeile.add(o);
		}

		/**
		* fügt die aktuelle Zeile der Tabelle an
		*/
		public void addElementTab(Vector v_zeile){
			Vector v = new Vector();
			v = v_zeile;
			v_tab.add(v);      
			//ich weiss nicht wie ich nun Zeilenweise den kram anfügen kann
			//mit v_zeile.clear(); lösche ich leider beide Vectoren v und v_zeile....
			//
		}
		public Vector getZeile(){
			return v_zeile;
		}
		public Vector getTab(){
			return v_tab;
		}

		Vector  v_zeile = new Vector();
		Vector v_tab = new Vector();
}


MfG
Malte Roessner
 
Zuletzt bearbeitet:
Hallo!

Ich denke es waere besser, wenn man fuer eine konkrete Tabellenzeile ein Object[] zur Datenhaltung verwenden wuerde. Da alle Zeilen einer Tabelle gleich viele Spalten haben macht ein (variabler) Vector/List keinen Sinn. Fuer die Verwaltung der einzelnen Tabellenzeilen bietet sich eine Liste an, da die Anzahl variabel ist.

Java:
/**
 * 
 */
package de.tutorials;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * @author Tom
 *
 */
public class TableExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Table table = new Table(new String[]{"A","B","C"});
        table.addRow(new Object[]{"1","2","3"});
        table.addRow(new Object[]{"4","5","6"});
        table.addRow(new Object[]{"7","8","9"});
        
        for(Iterator iterator = table.iterator();iterator.hasNext();){
            System.out.println(Arrays.toString((Object[])iterator.next()));
        }
    }
    
    static class Table{
        String[] columnNames;
        List rows;
        
        public Table(String[] columnNames){
            this.columnNames = columnNames;
            rows = new ArrayList();
        }
        
        void addRow(Object[] rowData){
            rows.add(rowData);
        }

        public Iterator iterator() {
            return rows.iterator();
        }
    }
}

Gruss Tom
 
Hallo,
danke erstmal für die prompte Antwort.
das Problem was sich mir dabei stellt, weshalb ich bisher kein Array von Objekten genommen habe ist, dass erst zur Laufzeit entschieden werden kann wie "groß"
also wie viele Spalten und Zeilen die Tabelle hat.
meine addElementtoZeile Methode und addElementTab Methode wären super wenn es denn funktionieren würde.
Danke für weitere Hilfe schonmal.
Gruß
Malte Roessner
 
Hallo!

das Problem was sich mir dabei stellt, weshalb ich bisher kein Array von Objekten genommen habe ist, dass erst zur Laufzeit entschieden werden kann wie "groß"
also wie viele Spalten und Zeilen die Tabelle hat.
meine addElementtoZeile Methode und addElementTab Methode wären super wenn es denn funktionieren würde.
Danke für weitere Hilfe schonmal.
Das Problem ist aber doch gar keines... da du die groesse der Tabelle beim erzeugen der Tabelle angibst. Die Tabelle hat dann eben genauso viele Spalten wie du Spaltenueberschriften uebergeben hast.

Gruss Tom
 

Neue Beiträge

Zurück