Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Input/OutputWie prüfen ob Stream1 in Stream2 enthalten ist (on-the-fly) ?
ich habe Probleme beim Finden eines Lösungsansatzes für das folgende Problem:
Wie prüft man on-the-fly ob Stream1 in Stream2 enthalten ist?
Die Elemente in den beiden Strömen sind aufsteigend sortiert.
Es werden also zwei Ströme unabhängig von einander empfangen und man will schauen ob der Stream1 in seinem aktuellen Zustand in dem aktuellen Zustand des Stream2 vorhanden ist.
Methodenkopf:
public static boolean linearIn (final Stream1, final Stream2) {}
Bsp.:
Stream1 : 2 3 4
Stream2 : 1 2 3 4 5 6
z.B. Ausgabe= false , false ,false , true ( da 2 3 4 in 1 2 3 4 5 6 enthalten ist)
Man darf halt nicht abwarten bis der Stream zu Ende ist, sondern im aktuellen Zustand abfragen und ausgeben ob enthalten oder nicht. D.h. nicht vollständig in einen Array einlesen und dann am Ende vergleichen.
Ein Stream ist für mich ein Datenstrom beliebiger Länge. Wenn du davon zwei hast und nachsehen willst ob einer in dem anderen vorhanden ist kann das nur gehen, wenn zumindest der kürzere der beiden komplett eingelesen ist. Alles andere ist mathematisch unmöglich.
Ein Stream ist für mich ein Datenstrom beliebiger Länge. Wenn du davon zwei hast und nachsehen willst ob einer in dem anderen vorhanden ist kann das nur gehen, wenn zumindest der kürzere der beiden komplett eingelesen ist. Alles andere ist mathematisch unmöglich.
Zitat: "Da Datenströme unendlich lang sein können, ist es im Allgemeinen nicht möglich diese vollständig aufzuzeichnen und erst dann zu verarbeiten, wenn diese Kopie vorliegt. Daher sollen Sie on-the-fly arbeiten, d.h. jedes gelesene Element muss direkt verarbeitet werden."
Also es ist nicht möglich die beiden Streams "fertig aufzuzeichnen" und dann zu prüfen. Wie geht es dann?
Du must schon genauer erklären was deine Streams denn enthalten. Wenn sie aus einzelnen Elementen bestehen, dann kannst du natürlich die Elemente auch einzeln bearbeiten. Du kannst aber nicht feststellen ob ein Element aus Stream 1 irgendwo in Stream 2 vorkommt, solange Stream 2 nicht komplett gelesen ist. Das ist doch wohl logisch oder?