Hallo,
gibt es eine Möglichkeit, einen parallelStream nach erreichen eines limits vorzeitig abzubrechen?
In diesem Beispiel geht er durch alle 5 Elemente durch und limitiert dann bei 2.
Im konkreten Fall geht es um eine Liste an imageUrls. Ich habe eine Liste an 'n' Urls, bei denen nicht sichergestellt ist, das diese zum Zeitpunkt des downloads existieren. Ich möchte bei 'm' erfolgreichen downloads, den parallelStream abbrechen.
Kennt jemand eine vernünftige Lösung?
Lg
T_T
gibt es eine Möglichkeit, einen parallelStream nach erreichen eines limits vorzeitig abzubrechen?
Java:
final ArrayList<String> list = Lists.newArrayList("a", "b", "c", "d", "e");
final List<String> resultList = list.parallelStream()
.map(s -> {
try {
Thread.sleep(5000);
return s;
} catch (InterruptedException e) {
return null;
}
})
.peek(System.err::println)
.filter(Objects::nonNull)
.limit(2)
.collect(Collectors.toList());
Im konkreten Fall geht es um eine Liste an imageUrls. Ich habe eine Liste an 'n' Urls, bei denen nicht sichergestellt ist, das diese zum Zeitpunkt des downloads existieren. Ich möchte bei 'm' erfolgreichen downloads, den parallelStream abbrechen.
Kennt jemand eine vernünftige Lösung?
Lg
T_T