Hallo Zusammen,
ich habe ein Array (Integer) A, welches mit Werten gefüllt ist (IDs aller Datensätze einer Tabelle). Außerdem habe ich ein Array (Integer) B, welches ausgewählte Datensätze aus dem Array A als Werte beinhaltet. Ich möchte nun ein Array (Integer) C erstellen, welches alle IDs der Datensätze aus der Tabelle beinhaltet, welche nicht im Array B vorkommen.
hab ja keine Ahnung wozu du das gebrauchst.....die Sache mit den 3 Arrays ist aber fuer gewohnlich wenig sinnvoll -> redundante Datenhaltung
Alternativ kannst du in deinem Array vll Objekte reinschreiben welche aus dem Integer und einer boolean-Variable bestehen welche angibt ob der Wert auch in Array b auftaucht.
Hallo Zusammen,
ich habe ein Array (Integer) A, welches mit Werten gefüllt ist (IDs aller Datensätze einer Tabelle). Außerdem habe ich ein Array (Integer) B, welches ausgewählte Datensätze aus dem Array A als Werte beinhaltet. Ich möchte nun ein Array (Integer) C erstellen, welches alle IDs der Datensätze aus der Tabelle beinhaltet, welche nicht im Array B vorkommen.
Müssen es denn unbedingt Arrays vom Typ Integer sein? Kannst du nicht vielleicht mit ner java.util.List arbeiten? Die (und viele andere Listen auch ) hat die Methode constains(Object), mit der sowas in einer ganz einfachen Schleife laufen würde:
Code:
// List a = dein Array A
// List b = dein Array B
// List c = dein Array C
for (int i = 0; i < b.length(); i++) {
if (a.contains(b.get(i))) {
c.add(b.get(i));
}
}
Bei Arrays wäre das ganze einiges umständlicher, würde aber vom Prinzip ähnlich gehen, nur wirst du das ganze dann nicht mit einer einzigen Schleife lösen können.
Müssen es denn unbedingt Arrays vom Typ Integer sein? Kannst du nicht vielleicht mit ner java.util.List arbeiten? Die (und viele andere Listen auch icon_biggrin.gif ) hat die Methode constains(Object), mit der sowas in einer ganz einfachen Schleife laufen würde:
Code:
1
2
3
4
5
6
7
8
9
10
// List a = dein Array A
// List b = dein Array B
// List c = dein Array C
for (int i = 0; i < b.length(); i++) {
if (a.contains(b.get(i))) {
c.add(b.get(i));
}
}
Bei Arrays wäre das ganze einiges umständlicher, würde aber vom Prinzip ähnlich gehen, nur wirst du das ganze dann nicht mit einer einzigen Schleife lösen können.
Nein es müssen nicht umbedingt Integer sein, ich kann das auch in int- Werte umformen.
Irgendwie habe ich aber das Gefühl, dass deine Lösung so gar nicht das machen wird, was ich möchte!
Mit dem...
Code:
if (a.contains(b.get(i))) {
c.add(b.get(i));
}
...fügt man doch alle Werte von B in C ein, da ja sowieso alle Werte von B in A vorkommen (ich hoffe, das kapiert noch jemand...)
Nochmals: Ich möchte alle Werte von A die nicht in B vorkommen!
evtl. täusche ich mich ja auch und deine Lösung funktioniert einwandfrei, aber dann sollte mir das jemand genau erklären...
Alternativ kannst du in deinem Array vll Objekte reinschreiben welche aus dem Integer und einer boolean-Variable bestehen welche angibt ob der Wert auch in Array b auftaucht.
Ich habe mich jetzt trotzdem für eine nicht so gute, aber einfach umzusetzende Lösung entschieden. Die Performance Einbussen, welche wohl dabei auftauchen, sind aber nicht so gravierend, als dass ich Sie bemerken würde...
Sorry für den schon zweiten Doppelpost, aber: Ich wollte mich noch bei allen bedanken, ich konnte durch eure Lösungsansätzen das Problem zufriedenstellend lösen...