From 4661bcd109b1bb2622a2007f45d0545ca5fdfadf Mon Sep 17 00:00:00 2001 From: tastybento Date: Sat, 24 Jul 2021 14:26:45 -0700 Subject: [PATCH] Use Java 9's takeWhile --- .../bentobox/level/CustomSpliterator.java | 38 ------------------- .../world/bentobox/level/LevelsManager.java | 15 +------- 2 files changed, 1 insertion(+), 52 deletions(-) delete mode 100644 src/main/java/world/bentobox/level/CustomSpliterator.java diff --git a/src/main/java/world/bentobox/level/CustomSpliterator.java b/src/main/java/world/bentobox/level/CustomSpliterator.java deleted file mode 100644 index e7e31c8..0000000 --- a/src/main/java/world/bentobox/level/CustomSpliterator.java +++ /dev/null @@ -1,38 +0,0 @@ -package world.bentobox.level; - -import java.util.Spliterator; -import java.util.Spliterators; -import java.util.function.Consumer; -import java.util.function.Predicate; - -/** - * Java 8 version of Java 9's forWhile - * https://www.baeldung.com/java-break-stream-foreach - * @author tastybento - * - * @param - */ -public class CustomSpliterator extends Spliterators.AbstractSpliterator { - - private Spliterator splitr; - private Predicate predicate; - private boolean isMatched = true; - - public CustomSpliterator(Spliterator splitr, Predicate predicate) { - super(splitr.estimateSize(), 0); - this.splitr = splitr; - this.predicate = predicate; - } - - @Override - public synchronized boolean tryAdvance(Consumer consumer) { - boolean hadNext = splitr.tryAdvance(elem -> { - if (predicate.test(elem) && isMatched) { - consumer.accept(elem); - } else { - isMatched = false; - } - }); - return hadNext && isMatched; - } -} \ No newline at end of file diff --git a/src/main/java/world/bentobox/level/LevelsManager.java b/src/main/java/world/bentobox/level/LevelsManager.java index 7f0b366..e5e1edb 100644 --- a/src/main/java/world/bentobox/level/LevelsManager.java +++ b/src/main/java/world/bentobox/level/LevelsManager.java @@ -14,10 +14,8 @@ import java.util.TreeMap; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; -import java.util.stream.StreamSupport; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -444,18 +442,7 @@ public class LevelsManager { .filter(e -> addon.getIslands().isOwner(world, e.getKey())) .filter(l -> l.getValue() > 0) .sorted(Collections.reverseOrder(Map.Entry.comparingByValue())); - return takeWhile(stream, x -> !x.getKey().equals(uuid)).map(Map.Entry::getKey).collect(Collectors.toList()).size() + 1; - } - - /** - * Java 8's version of Java 9's takeWhile - * @param stream - * @param predicate - * @return stream - */ - public static Stream takeWhile(Stream stream, Predicate predicate) { - CustomSpliterator customSpliterator = new CustomSpliterator<>(stream.spliterator(), predicate); - return StreamSupport.stream(customSpliterator, false); + return stream.takeWhile(x -> !x.getKey().equals(uuid)).map(Map.Entry::getKey).collect(Collectors.toList()).size() + 1; } /**