Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ?

Ajlex

Mitglied
Hey, und zwar folgendes:

Ich habe z.B. 4 verschiedene ArrayListen mit Integer als Inhalt:

ListA
ListB
ListC
ListD

Jetzt möchte ich schauen, ob die Integer-Zahlen aus ListD mindestens in ListA, ListB oder ListC vorhanden sind.

Bei insgesamt 4 Listen könnte man noch ListA.containsAll(ListD) benutzen und ListA immer umschreiben zu ListB usw.., allerdings habe ich mehr als 4 Listen und deswegen die Frage:

Wie kann ich am Besten ListD mit allen anderen Listen nacheinander vergleichen, ohne die anderen Listen immer dazuschreiben zu müssen?

Kann ich die anderen Listen (ListA, ListB und ListC) in einer größeren Collection "abspeichern" und dann ListD direkt mit dem neu erstellten Objekt vergleichen?

Ganz wichtig: Ich kann nicht den Inhalt aus ListA, ListB und ListC in einer neuen Liste abspeichern und dann vergleichen!
 
K

kneitzel

Gast
Du kannst doch für jedes Element aus listA schauen, ob es in einer der anderen listen ist. Wenn nicht, ist der test vorbei (ein Element gefunden, dass nicht on einer der anderen Listen ist).

Wenn die Anzahl der anderen Listen nicht konstant sein soll, kannst Du als Parameter ein Array von Listen angeben. Oder eben halt als varargs, was den Aufruf ggf. vereinfacht:
http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
 

Ajlex

Mitglied
Du kannst doch für jedes Element aus listA schauen, ob es in einer der anderen listen ist. Wenn nicht, ist der test vorbei (ein Element gefunden, dass nicht on einer der anderen Listen ist).
Aber es sind nicht wie oben Beispielhaft angegeben 4 Listen, sondern knapp 20.
Es wäre kein schöner Code und bisschen umständlich wenn ich 20 mal schreiben müsste:

List1.containsAll(ListD)
List2.containsAll(ListD)
..
..
..
List20.containsAll(ListD)

Wenn ich eine for-each Methode benutzen würde, würde es ja aufs gleiche hinaus gehen, oder?

Wenn die Anzahl der anderen Listen nicht konstant sein soll, ...

Die Anzahl der anderen Listen ist Konstant und deren Inhalt ändert sich ebenfalls nicht.

Gruß, Alex
 
K

kneitzel

Gast
Also jetzt bin ich verwirrt. Was genau willst Du denn prüfen? Zuerst schreibst Du, dass alle Elemente aus einer Liste in allen anderen Listen enthalten sein muss.

Also
a: 1, 3, 5, 7
b: 1, 11, 21
c: 3, 13, 23
d: 5, 15, 25
e: 6, 17, 27

=> Alle Elemente von a sind in einer der Listen aus b, c, d oder e.

Oder muss es ein Subset der anderen Liste sein, also
a: 1, 3
b: 1, 3, 5, 7
c: 1, 2, 3
d: 1, 3, 9, 11
==> Die Elemente von a sind in jeder der anderen Liste enthalten.

Und natürlich macht es einen Unterschied im Code. Wenn Du alles einzeln schreibst, dann hast Du doppelten Code. Du hat ein Code-Teil der wieder und wieder kommt. Wenn Du das als ein Array hast, dann hast Du nur nor for (int index; index < listArray.length; index++) listArray[index]......

Definier genau, was Du haben willst, gib uns Code, den Du evtl. schon geschrieben hast und dann können wir dir auch wirklich helfen. Paar Anregungen hast Du in meiner ersten Antwort schon erhalten.
 

Ajlex

Mitglied
Beispiel:

Vorhandene Listen, deren Inhalt sich nicht ändert:
Code:
A: 0, 1, 2, 3, 4, 5, 6
B: 7, 8, 9, 10, 11
C: 0, 3, 6, 7, 9, 10
D: 2, 4, 5, 6, 8, 9
E: 0, 1, 4, 6, 7, 13

Liste, deren Inhalt sich verändern kann:
Code:
F: 0, 6, 7, 10

Was ich jetzt machen will:
F mit A, B, C, D und E vergleichen, ob der Inhalt von F in einer der anderen Listen vorhanden ist.

Anmerkung: Es reicht, wenn die Zahlen aus F in nur einer Liste von oben enthalten sind.

F <-> A => "false"
F <-> B => "false"
F <-> C => "true" (da Inhalt von F (0, 6, 7, 10) in C (0, 3, 6, 7, 9, 10) enthalten ist)
- beenden -
 
K

kneitzel

Gast
Dann halte die Listen in einer Collection oder in einem Array vor und gehe dies dann dann einfach durch. Die Methode sieht dann relativ einfach aus:
Code:
List getMatchingList(List search) {
  for (List list: myLists) {
    if (list.containsAll(search))
      return list;
  }
  return null;
}

Und myLists kann dann halt ein Array mit den Listen sein oder eine beliebige Collection, die eben die for each Schleife unterstützt.
Statt die Liste zurück zu geben könnte man auch ein boolean Wert zurück geben. Je nachdem, was Du genau machen willst.

Das ist doch ein einfacher und gradliniger Aufbau, oder nicht?
 

Ajlex

Mitglied
Also es hat nicht so wirklich funktioniert.. Habe jetzt doch tatsächlich eine große if-Schleife benutzt wo ich alle 20 Listen mit der einen Liste vergleiche, um da mal ein bisschen weiterzukommen.

Werde (nachdem ich mit dem Programm fertig bin) nochmal versuchen diesen Teil "hübscher" zu gestalten.

Gruß, Alex

(Sorry für Doppelpost, kann aber den Beitrag da oben nicht bearbeiten)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Inhalt einer Website auslesen Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
C JFormattedTextField Inhalt einer Variable zuweisen Allgemeine Java-Themen 11
S Inhalt einer zip-Datei anzeigen Allgemeine Java-Themen 11
R Eingabe eines Textfeldes mit Inhalt einer Datei vergleichen Allgemeine Java-Themen 4
P Inhalt einer Mail anzeigen Allgemeine Java-Themen 5
G Inhalt einer Textdatei in eine AWT List schreiben Allgemeine Java-Themen 3
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
G JTextField Inhalt in einem Long einfügen Allgemeine Java-Themen 2
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
T String auf Inhalt bzw. Schema überprüfen Allgemeine Java-Themen 12
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
L Input/Output Datei einlesen und Inhalt in Array schreiben Allgemeine Java-Themen 3
U JNI -> Inhalt dll zugreifen Allgemeine Java-Themen 5
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
S leeres package obwohl inhalt da Allgemeine Java-Themen 53
Iron Monkey Inhalt von JTable in die Textdatei mit StringWidth schreiben Allgemeine Java-Themen 3
A Excel nach bestimmten Inhalt durchsuchen Allgemeine Java-Themen 8
U Webseiten Inhalt auslesen... Allgemeine Java-Themen 7
D File mit Inhalt kopieren und dieses File dann neu erstellen ? Allgemeine Java-Themen 4
I Webseite auslesen (welche mittels Javascript Inhalt einbindet) Allgemeine Java-Themen 4
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
J XML Inhalt von Web abfragen Allgemeine Java-Themen 6
W Inhalt aus String evaluieren Allgemeine Java-Themen 6
E Regex HTML Tag und Inhalt löschen Allgemeine Java-Themen 4
A Inhalt ListEditor und Buttons ausblenden Allgemeine Java-Themen 5
Y Excel datei einlesen und inhalt verarbeiten Allgemeine Java-Themen 8
D Inhalt der JTextArea drucken Allgemeine Java-Themen 2
J Inhalt von HashMap vergleichen Allgemeine Java-Themen 3
T Bestimmten Inhalt aus Manifest.MF auslesen Allgemeine Java-Themen 8
F JFrame zeigt Hintergrund und nicht den Inhalt Allgemeine Java-Themen 12
T (Binary)Datei einlesen, Inhalt ändern, Datei schreiben Allgemeine Java-Themen 4
O Inhalt vom JTextfield im DebugMode ermitteln? Allgemeine Java-Themen 2
O Vektor kopieren (Inhalt, nicht Referenzen) Allgemeine Java-Themen 3
D Inhalt eines Ordners auflisten. Allgemeine Java-Themen 2
7 Inhalt eines Objekts leeren aber Objekt nicht löschen Allgemeine Java-Themen 17
D Inhalt eines Packages im Code verarbeiten Allgemeine Java-Themen 18
J Datei Inhalt vergleichen (schnell & effizient!) Allgemeine Java-Themen 10
MQue Array inhalt verschieben Allgemeine Java-Themen 6
N RandomAccessFile überschreibt Inhalt Allgemeine Java-Themen 3
Y Klassen mit ähnlichem Inhalt: wie unterscheiden? Allgemeine Java-Themen 9
M Inhalt von Textdatei in Spinner Allgemeine Java-Themen 5
T Bild verliert Inhalt. Allgemeine Java-Themen 6
A "Webseite-Inhalt" ins Arabische&Französische ü Allgemeine Java-Themen 2
T HashMap#get neues Objekt, selber Inhalt Allgemeine Java-Themen 12
G Inhalt eines Arrays loggen Allgemeine Java-Themen 8
B Inhalt von StringBuffer löschen Allgemeine Java-Themen 14
J File: Inhalt des Ordners aus dem die aktuelle Datei ausgefüh Allgemeine Java-Themen 6
P Wie kann ich den Inhalt eines Textdokuments löschen? Allgemeine Java-Themen 9
K Inhalt von Vektoren auslesen Allgemeine Java-Themen 6
T iso datei (Image) mit Java einlesen und Inhalt entpacken Allgemeine Java-Themen 3
K JTree Inhalt löschen und Anzeige aktualisieren Allgemeine Java-Themen 13
G ResultSet auf Inhalt prüfen? Allgemeine Java-Themen 2
G Inhalt von Servern anzeigen lassen Allgemeine Java-Themen 9
R Tabellen inhalt mal vorhanden, mal nicht!?! Allgemeine Java-Themen 2
O Text aus einer Textdatei rausholen, der zwischen zwei Schlüsselworten steht Allgemeine Java-Themen 4
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
T JNA, Aufruf der Funktionen einer dll Allgemeine Java-Themen 5
I Vom Monolith zu Services in einer Webseite Allgemeine Java-Themen 1
W Variable Initialisierung mit dem Ergebnis einer Regex Allgemeine Java-Themen 1
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
M Optimierung einer Methode (byte-Geraffel) Allgemeine Java-Themen 2
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
C Parsen einer sich updatenden Html mithilfe von jsoup Allgemeine Java-Themen 4
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Performance einer Monte-Carlo-Simulation verbessern Allgemeine Java-Themen 6
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
E Variablen Nach Übergabe einer Variable den Constructor aufrufen Allgemeine Java-Themen 16
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
D Abbruch einer ViewScoped Bean in Arbeit Allgemeine Java-Themen 2
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
Lukas2904 Wie kann man cps (ClicksPerSecond) in einer GUI anzeigen lassen? Allgemeine Java-Themen 4
O Produziert das Tool "jpackage" (ab JDK 14) .exe Dateien, die auf einer Zielumgebung ohne JRE lauffähig sind ?` Allgemeine Java-Themen 7
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
N BlueJ Implementation einer Analoguhr Allgemeine Java-Themen 0
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
N Speicherort einer Datei im Explorer ändern Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
L Erste Schritte TDD testen einer Methode mit injezierten Services? Allgemeine Java-Themen 12
J Zerlegen einer Zahl Allgemeine Java-Themen 6
Zrebna Wie kann man endgültig aus einer Rekursion ausbrechen? Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben