Entfernen Sie die wiederholte Sequenz von Elementen aus einer Liste

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Entfernen Sie die wiederholte Sequenz von Elementen aus einer Liste

by Anonymous » 05 Mar 2025, 10:30

Ich habe eine Anforderung, wo ich die Java -Stream -API verwenden möchte, um einen Ereignisstrom aus einem System zu verarbeiten und einen Datenreinigungsvorgang anzuwenden, um wiederholte Ereignisse zu entfernen. Dies entfernen das gleiche Ereignis, das mehrmals nacheinander wiederholt wurde und nicht eine Liste verschiedener Ereignisse erstellt. Die meisten Beispiele für Java -Stream -API -Beispiele für Online -Ziele erstellen eine ausgeprägte Ausgabe einer bestimmten Eingabe. /> Die Ausgabeliste oder der Stream sollte < /p>

[A, B, C, A, D, C, E, F] < /p>
< /blockquote>
Meine aktuelle Implementierung (nicht verwendet) aussieht, sieht wie < /p>
wie < /p>
aus.public class Test {
public static void main(String[] args) {
String fileName = "src/main/resources/test.log";
try {
List list = Files.readAllLines(Paths.get(fileName));
LinkedList acc = new LinkedList();

for (String line: list) {
if (acc.isEmpty())
acc.add(line);
else if (! line.equals(acc.getLast()) )
acc.add(line);
}

System.out.println(list);
System.out.println(acc);

} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
< /code>
Ausgabe, < /p>
[a, b, c, a, a, a, a, d, d, d, c, c, e, e, e, e, e, e, f, f, f]
[a, b, c, a, d, c, e, f]
< /code>
Ich habe verschiedene Beispiele mit Reduzierung, GroupingBy usw. ohne Erfolg ausprobiert. Ich kann keinen Weg finden, einen Stream mit dem letzten Element in meinem Akkumulator zu vergleichen, wenn es eine solche Möglichkeit gibt.

Top