Hallo,
ich steh vor einem Rätsel... Um es kurz zu machen:
Ich habe eine simple Tabelle ("kunden"), suche dort bestimmte Elemente und gebe die gefundenen Elemente in einer neuen Tabelle ("ergebnis") aus.
Der Faulheit halber habe ich meine ergebnis-Tabelle zunächst mit
initialisiert,
das hatte zur Folge, dass jedoch auch meine Ausgangstabelle verändert wurde. (Zum Ausdruck habe ich dann eh nur die gefundenen Zeilen der ergebnis-Tabelle verwendet.)
Als ich dann
verwendet habe, hat alles wie gewünscht funktioniert.
Ich habe den Code hier angegeben und ihn vereinfacht.
Zeile 17 beinhaltet den nicht funktionierenden Code,
Zeile 14 (auskommentiert) beinhaltet den in meinem Sinne funktionierenden Code.
Ich habe mir die Zähne ausgebissen, echt.
Weiß jemand, weshalb bei der "schlechten" Lösung auch die Inhalte in der Ausgangstabelle geändert werden?
Viele Grüße... ???:L
Ergebnis mit der schlechten Lösung:
Kunden-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Suche:
Treffer in Zeile (Position) 2
Treffer in Zeile (Position) 5
Ergebnis-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Kunden-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis mit der guten Lösung:
Kunden-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis-Tabelle VOR der Suche:
null null null null
null null null null
null null null null
null null null null
null null null null
null null null null
null null null null
Suche:
Treffer in Zeile (Position) 2
Treffer in Zeile (Position) 5
Ergebnis-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
null null null null
null null null null
null null null null
null null null null
null null null null
Kunden-Tabelle NACH der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
ich steh vor einem Rätsel... Um es kurz zu machen:
Ich habe eine simple Tabelle ("kunden"), suche dort bestimmte Elemente und gebe die gefundenen Elemente in einer neuen Tabelle ("ergebnis") aus.
Der Faulheit halber habe ich meine ergebnis-Tabelle zunächst mit
Java:
String[][] ergebnis = kunden;
das hatte zur Folge, dass jedoch auch meine Ausgangstabelle verändert wurde. (Zum Ausdruck habe ich dann eh nur die gefundenen Zeilen der ergebnis-Tabelle verwendet.)
Als ich dann
Java:
String[][] ergebnis = new String[kunden.length][kunden[0].length];
Ich habe den Code hier angegeben und ihn vereinfacht.
Zeile 17 beinhaltet den nicht funktionierenden Code,
Zeile 14 (auskommentiert) beinhaltet den in meinem Sinne funktionierenden Code.
Ich habe mir die Zähne ausgebissen, echt.
Weiß jemand, weshalb bei der "schlechten" Lösung auch die Inhalte in der Ausgangstabelle geändert werden?
Viele Grüße... ???:L
Java:
class KV1
{
public static void main(String args[])
{
String[][] kunden = {{"001","Aname","Bvorname","Cort"},
{"002","Dname","Avorname","Bort"},
{"003","Cname","Dvorname","Aort"},
{"004","Bname","Cvorname","Dort"},
{"005","Dname","Avorname","Bort"},
{"006","Cname","Dvorname","Aort"},
{"007","Bname","Cvorname","Dort"}};
//So funktioniert's:
//String[][] ergebnis = new String[kunden.length][kunden[0].length];
//So funktioniert's nicht:
String[][] ergebnis = kunden;
int ergebnis_zeile = 0;
int suchfeld = 3;
String suchbegriff = "Aort";
//Kunden-Tabelle VOR der Suche:
System.out.println();
System.out.println("Kunden-Tabelle VOR der Suche:");
for(int i=0 ; i<kunden.length ; i++)
{
for(int j=0 ; j<kunden[0].length ; j++)
System.out.print(kunden[i][j] + " ");
System.out.println();
}
//Ergebnis-Tabelle VOR der Suche:
System.out.println();
System.out.println("Ergebnis-Tabelle VOR der Suche:");
for(int i=0 ; i<ergebnis.length ; i++)
{
for(int j=0 ; j<ergebnis[0].length ; j++)
System.out.print(ergebnis[i][j] + " ");
System.out.println();
}
//SUCHE:
System.out.println();
System.out.println("Suche:");
for(int i=0 ; i<kunden.length ; i++)
{
if(suchbegriff.compareTo(kunden[i][suchfeld]) == 0)
{
System.out.println("Treffer in Zeile (Position) " + i);
ergebnis[ergebnis_zeile] = kunden[i]; //Fügt die gefundene Zeile aus kunden-Tabelle in die entsprechende Zeile in ergebnis-Tabelle
ergebnis_zeile++;
}
}
//Ergebnis-Tabelle NACH der Suche:
System.out.println();
System.out.println("Ergebnis-Tabelle NACH der Suche:");
for(int i=0 ; i<ergebnis.length ; i++)
{
for(int j=0 ; j<ergebnis[0].length ; j++)
System.out.print(ergebnis[i][j] + " ");
System.out.println();
}
//Kunden-Tabelle NACH der Suche:
System.out.println();
System.out.println("Kunden-Tabelle NACH der Suche:");
for(int i=0 ; i<kunden.length ; i++)
{
for(int j=0 ; j<kunden[0].length ; j++)
System.out.print(kunden[i][j] + " ");
System.out.println();
}
}
}
Ergebnis mit der schlechten Lösung:
Kunden-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Suche:
Treffer in Zeile (Position) 2
Treffer in Zeile (Position) 5
Ergebnis-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Kunden-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis mit der guten Lösung:
Kunden-Tabelle VOR der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort
Ergebnis-Tabelle VOR der Suche:
null null null null
null null null null
null null null null
null null null null
null null null null
null null null null
null null null null
Suche:
Treffer in Zeile (Position) 2
Treffer in Zeile (Position) 5
Ergebnis-Tabelle NACH der Suche:
003 Cname Dvorname Aort
006 Cname Dvorname Aort
null null null null
null null null null
null null null null
null null null null
null null null null
Kunden-Tabelle NACH der Suche:
001 Aname Bvorname Cort
002 Dname Avorname Bort
003 Cname Dvorname Aort
004 Bname Cvorname Dort
005 Dname Avorname Bort
006 Cname Dvorname Aort
007 Bname Cvorname Dort