Anzeige:
Ergebnis 1 bis 11 von 11

Thema: Array

  1. #1
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337

    Array

    Ich weine gerade meinen Array-Funktionen in PHP nach.

    Ich möchte eine Datenbankabfrage mit einem 2D_Array auslesen.
    -Abfrage über alle Datensätze-

    try { while( result_Personendaten.next()){
    i=0;
    k++;
    Persondaten[k][i]= result_Personendaten.getString("Nachname"); i++;
    Persondaten[k][i]= result_Personendaten.getString("Geburtsname"); i++;
    Persondaten[k][i]= result_Personendaten.getString("Vornamen"); i++;
    System.out.println("Person: "+Persondaten[k][i]+": "+k+"_"+i);
    }
    } catch(Exception e) {System.out.println("Keine Antwort");}

    Ergebnis: null: 1_8

    Leider kommt da für Persondaten[k][i] immer nur "null".
    Mit einem 1-dim Array klappt das.

    Außerdem bräuchte ich ein paar Array-Funktionen.
    count, last-Element ect.
    Gibt es da eine Liste?

  2. #2
    Registrierter Benutzer Avatar von Corcovado
    Registriert seit
    10.07.2005
    Beiträge
    30
    Hallo,
    Interessant waere hier zu sehen, wie Du dein arr[][] anlegst.

    Denke dran, dass Du erstens das erste Array initialisieren musst (Anzahl der Elemente), dann jedes Element jeweils wieder mit einem Array (plus Initialisierung der Anzahl der jeweiligen Elemente). Evtl dort dann auch jedes Element der jeweiligen Arrays im Array noch mal extra allokieren/anlegen oder halt was zuweisen.

    Echte 2D gibt es in Java von der Sprache her nicht, aber man kann sich etwa mit folgendem behelfen, diese Loesung ist afaik einem arr[][] auch vorzuziehen, da sie effektiver ist:
    Code:
    public class My2DIntArray
    {
       private int[] innerArray;
       public final int width;
       public final int height;
       public My2DIntArray(int width, int height)
       {
          this.width = width;
          this.height = height;
          innerArray = new int[width*height];
       }
       public void setElement(int x, int y, int value)
       {
          innerArray[y*width+x] = value;
       }
       public int getElement(int x, int y)
       {
          return innerArray[y*width+x];
       }
    }
    Quelle:
    http://www.c-plusplus.de/forum/viewt...is-151800.html
    Hahahahahahaha... (Winx)

  3. #3
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Tolle Idee.
    Aber das bringt es wohl auch nicht.
    Da kann ich ja gleich einen eindimensionalen Array nehmen.
    Das ist ja bloß Selbstbetrug.

  4. #4
    Registrierter Benutzer Avatar von Corcovado
    Registriert seit
    10.07.2005
    Beiträge
    30
    Nja, also wir anderen machen das halt so, wenn wir ein "echt" 2D Array erzeugen wollen, man koennte es auch als arr[][] definieren, bspw so:
    Code:
    public class MyArray {
    	private String[][] arr;
    	public MyArray(int len, int wid){
    		arr = new String[len][wid];
    		for(int i=0;i<len;++i){
    			for(int j=0;j<wid;++j){
    				arr[i][j]="bla";
    			}
    		}
    	}
    	
    	public static void main(String[] args){
    		MyArray ma = new MyArray(5,3);
    		System.out.println("Content:");
    		for(int i=0;i<ma.arr.length;++i){
    			for(int j=0;j<ma.arr[0].length;++j){
    				System.out.print((j==0)?"":" ");
    				System.out.print(ma.arr[i][j]);
    			}
    			System.out.print("\n");
    		}
    	}
    }
    ..aber davor raet man afaik ab, weil das wohl ein ziemlicher Ressourcenfresser ist. Also es ist effektiver das in einer "Dimension" quasi-2D zu implementieren als beide "Dimensionen" in der Java Schreibweise entsprechend auszunutzen. Im Speicher liegen die Daten ja sowieso alle an einer Linie und DAS ist dann ja sogesehn auch puurer Selbstbetrug. Ausserdem ist der gesamte Computerkram eigentlich auch kompletter Humbug ist und virtuelle Welten gibts auch nicht!!!

    PS:
    http://www.willamette.edu/~gorr/clas...9/arrays2d.htm
    Geändert von Corcovado (09-07-2006 um 11:55 Uhr)
    Hahahahahahaha... (Winx)

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von Jana
    Außerdem bräuchte ich ein paar Array-Funktionen.
    count, last-Element ect.
    Gibt es da eine Liste?
    Die Array Klasse hat eine Variable length, das letzte Element ist damit array[array.length - 1]

    Allerdings ist das eigentliche Problem die ungünstige Wahl der Zieldatenstruktur.

    Die Personendaten sollten in einer Klasse zusammengefasst sein und dann eben eine Array davon.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Eine Liste habe ich gefunden:
    http://www.xml-cml.org/cmldom/htmlDo...jectArray.html

    Stimmt. Eine Klasse wäre besser.
    Momentan kaue ich an der Baumstruktur meiner Ahnen herum.
    Ich habe eine Ausgangsperson und suche jeweils die id's Eltern.
    Das Ergebnis muß ich dann irgendwie sinnvoll abspeichern um daraus einen Baum zu machen.
    Ein 1-dim oder 2-dim Array als Speicher ist da nicht so brillant.
    Aber eine andere Idee habe ich nicht.

  7. #7
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Selbst nen Baum proggen: Aufwand ca. 30 Zeilen... (ok - wenn dus wirklich gemütlich haben willst, brauchst du noch ein paar mehr...)

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  8. #8
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Na, dann muß ich was falsch machen.
    Ich habe mal bei meinem Vorgänger gespickt.
    Er brauchte 4 Dateien mit irgendwelchen undurchsichtigen Zahlenreihen.

    Welchen Baum meinst du übrigens; einen Vorfahrenbaum, einen Nachkommenbaum - mit oder ohne Geschwister -
    oder einen Baum mit Vor-und Nachfahren.
    Einen Gesamtbaum habe ich noch nie gesehen. Es gab da einige 3-dim Versuche.
    Aber ich bin dankbar für jeden Tipp. In 30 Zeilen kriege ich das nicht hin.

  9. #9
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Unter Baum meinte ich eigentlich mehr die "Informatik-Bedeutung" von Baum

    MfG Bischi

    PS: Baum aus Knoten, wobei jeder Knoten eine verkettete Liste enthält, in welchem alle Nachfolgeknoten gespeichert sind, dürfte reichen...

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  10. #10
    Registrierter Benutzer Avatar von mwanaheri
    Registriert seit
    28.10.2003
    Ort
    Bayreuth
    Beiträge
    569

    Baumstruktur

    @Jana: Schau Dir mal die Doku zum TreeModel an oder sieh nach, wie man Bäume zeichnet. Das ist zwar nicht ganz die Darstellung, wie Du sie dir vorstellst, macht aber klar, wie es geht:
    http://java.sun.com/docs/books/tutor...ents/tree.html

    Du könntest also eine Klasse von Button ableiten, die das Interface TreeModel implementiert. Und natürlich auch ActionListener. Die Children würde ich in einer LinkedList speichern, denn wenn du sie in einem Array speicherst, musst du entweder das Array sehr groß wählen oder du riskierst, dass du Laufzeitfehler kriegst, wenn mehr da sind als gedacht.

    Ein grundsätzliches Problem bei dieser Darstellung besteht natürlich darin, dass du eigentlich die (bio-)Kinder einer Beziehung zuordnen müsstest und nicht einer einzelnen Person...
    Das Ziel ist das Ziel.

  11. #11
    Registrierter Benutzer Avatar von Corcovado
    Registriert seit
    10.07.2005
    Beiträge
    30
    Zitat Zitat von bischi
    Selbst nen Baum proggen: Aufwand ca. 30 Zeilen... (ok - wenn dus wirklich gemütlich haben willst, brauchst du noch ein paar mehr...)
    MfG Bischi
    30 Zeilen ein Vererbungsbaum, bei dem man als einzigste Regel hat dass is 2 Elternteile gibt aber variable Anzahl an Kindern?! Bin mal gespannt wie lange man sich dafuer den Kopf zerbricht, v.a. als Anfaenger - und wie sowas aussieht koenntest Du auch mal als Code posten!!! (das kommt dann in meine Sammlung!!)

    Ich denke v.a. fuer die Darstellung kommst Du alleine mit TableModel alleine nicht aus, wichtig sind auch noch Objekte fuer nen Knoten, fuer Dateninhalte, etc, weil Du keinen DefaultMutableTreeNode mehr hast, so wie ich das sehe. Evtl einen TreeCellEditor, oder wie der Schwachsinn heisst, etc pp. am besten Du machst da mal ein Tutorial durch. JTable und JTree sind welche der heftigsten Komponenten in Swing. Nja i.allg wirst Du Dir wohl nen Haufen Gedanken machen muessen wie Du das darstellen willst. Wenn Du nur von Dir ausgehst, kannst Du das ja als Stamm nehmen - hast Du Geschwister, die evtl sogar schon Kinder haben, wuerde ich nicht wissen, wie man das mit nem JTree darstellen kann, so einfach... Vllt doch wie bischi das meinte ne Datenstruktur dazu schreiben und die Darstellung flexibel der Anfrage daraus erstellen?! Dazu dann entsprechende JTrees verwenden..
    Hahahahahahaha... (Winx)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •