diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TerminableWrappedStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TerminableWrappedStream.java index 1e9aa797a..8b8a953a1 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TerminableWrappedStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TerminableWrappedStream.java @@ -269,16 +269,12 @@ public interface TerminableWrappedStream predicate) { Objects.requireNonNull(predicate); - if (isParallel()) { - return NOT_FOUND_ELEMENT_INDEX; - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - unwrap().filter(e -> { - index.increment(); - return predicate.test(e); - }).findFirst();// 此处只做计数,不需要值 - return index.get(); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + unwrap().filter(e -> { + index.increment(); + return predicate.test(e); + }).findFirst();// 此处只做计数,不需要值 + return index.get(); } /** @@ -317,17 +313,13 @@ public interface TerminableWrappedStream predicate) { Objects.requireNonNull(predicate); - if (isParallel()) { - return NOT_FOUND_ELEMENT_INDEX; - } else { - final MutableInt idxRef = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - forEachIdx((e, i) -> { - if (predicate.test(e)) { - idxRef.set(i); - } - }); - return idxRef.get(); - } + final MutableInt idxRef = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + forEachIdx((e, i) -> { + if (predicate.test(e)) { + idxRef.set(i); + } + }); + return idxRef.get(); } /** @@ -505,14 +497,8 @@ public interface TerminableWrappedStream action) { Objects.requireNonNull(action); - final boolean isParallel = isParallel(); - if (isParallel) { - EasyStream.of(toIdxMap().entrySet()).parallel() - .forEach(e -> action.accept(e.getValue(), e.getKey())); - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - unwrap().forEach(e -> action.accept(e, index.incrementAndGet())); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + unwrap().forEach(e -> action.accept(e, index.incrementAndGet())); } /** @@ -523,14 +509,8 @@ public interface TerminableWrappedStream action) { Objects.requireNonNull(action); - final boolean isParallel = isParallel(); - if (isParallel) { - EasyStream.of(toIdxMap().entrySet()).parallel() - .forEachOrdered(e -> action.accept(e.getValue(), e.getKey())); - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - unwrap().forEachOrdered(e -> action.accept(e, index.incrementAndGet())); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + unwrap().forEachOrdered(e -> action.accept(e, index.incrementAndGet())); } // endregion diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java index 308611eb1..5eed41ae1 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/stream/TransformableWrappedStream.java @@ -279,17 +279,8 @@ public interface TransformableWrappedStream action) { Objects.requireNonNull(action); - final boolean isParallel = isParallel(); - if (isParallel) { - final Map idxMap = easyStream().toIdxMap(); - return wrap(EasyStream.of(idxMap.entrySet()) - .parallel() - .peek(e -> action.accept(e.getValue(), e.getKey())) - .map(Map.Entry::getValue)); - } else { - final AtomicInteger index = new AtomicInteger(NOT_FOUND_ELEMENT_INDEX); - return peek(e -> action.accept(e, index.incrementAndGet())); - } + final AtomicInteger index = new AtomicInteger(NOT_FOUND_ELEMENT_INDEX); + return peek(e -> action.accept(e, index.incrementAndGet())); } /** @@ -384,16 +375,8 @@ public interface TransformableWrappedStream predicate) { Objects.requireNonNull(predicate); - final boolean isParallel = isParallel(); - if (isParallel) { - final Map idxMap = easyStream().toIdxMap(); - return wrap(EasyStream.of(idxMap.entrySet()).parallel() - .filter(e -> predicate.test(e.getValue(), e.getKey())) - .map(Map.Entry::getValue)); - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - return filter(e -> predicate.test(e, index.incrementAndGet())); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + return filter(e -> predicate.test(e, index.incrementAndGet())); } /** @@ -441,15 +424,8 @@ public interface TransformableWrappedStream EasyStream flatMapIdx(final BiFunction> mapper) { Objects.requireNonNull(mapper); - final boolean isParallel = isParallel(); - if (isParallel) { - final Map idxMap = easyStream().toIdxMap(); - return EasyStream.of(idxMap.entrySet()).parallel() - .flatMap(e -> mapper.apply(e.getValue(), e.getKey())); - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - return flatMap(e -> mapper.apply(e, index.incrementAndGet())); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + return flatMap(e -> mapper.apply(e, index.incrementAndGet())); } /** @@ -554,15 +530,8 @@ public interface TransformableWrappedStream EasyStream mapIdx(final BiFunction mapper) { Objects.requireNonNull(mapper); - final boolean isParallel = isParallel(); - if (isParallel) { - final Map idxMap = easyStream().toIdxMap(); - return EasyStream.of(idxMap.entrySet()).parallel() - .map(e -> mapper.apply(e.getValue(), e.getKey())); - } else { - final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - return map(e -> mapper.apply(e, index.incrementAndGet())); - } + final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); + return map(e -> mapper.apply(e, index.incrementAndGet())); } /** diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/stream/EasyStreamTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/stream/EasyStreamTest.java index 2e9194ca5..357b24e4f 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/stream/EasyStreamTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/stream/EasyStreamTest.java @@ -12,7 +12,6 @@ import org.junit.jupiter.api.Test; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -145,9 +144,6 @@ public class EasyStreamTest { final List list = Arrays.asList("dromara", "hutool", "sweet"); final List mapIndex = EasyStream.of(list).mapIdx((e, i) -> i + 1 + "." + e).toList(); Assertions.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), mapIndex); - // 并行流时正常 - Assertions.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), - EasyStream.of("dromara", "hutool", "sweet").parallel().mapIdx((e, i) -> i + 1 + "." + e).toList()); } @Test @@ -199,10 +195,6 @@ public class EasyStreamTest { final EasyStream.Builder builder = EasyStream.builder(); EasyStream.of(list).forEachIdx((e, i) -> builder.accept(i + 1 + "." + e)); Assertions.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), builder.build().toList()); - // 并行流时正常 - final AtomicInteger total = new AtomicInteger(0); - EasyStream.of("dromara", "hutool", "sweet").parallel().forEachIdx((e, i) -> total.addAndGet(i)); - Assertions.assertEquals(3, total.get()); } @Test @@ -223,10 +215,6 @@ public class EasyStreamTest { final List list = Arrays.asList("dromara", "hutool", "sweet"); final List mapIndex = EasyStream.of(list).flatMapIdx((e, i) -> EasyStream.of(i + 1 + "." + e)).toList(); Assertions.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), mapIndex); - // 并行流时正常 - Assertions.assertEquals(Arrays.asList("1.dromara", "2.hutool", "3.sweet"), - EasyStream.of("dromara", "hutool", "sweet").parallel() - .flatMapIdx((e, i) -> EasyStream.of(i + 1 + "." + e)).toList()); } @Test @@ -280,9 +268,6 @@ public class EasyStreamTest { final List list = Arrays.asList("dromara", "hutool", "sweet"); final List filterIndex = EasyStream.of(list).filterIdx((e, i) -> i < 2).toList(); Assertions.assertEquals(Arrays.asList("dromara", "hutool"), filterIndex); - // 并行流时正常 - Assertions.assertEquals(Arrays.asList("dromara", "hutool"), - EasyStream.of("dromara", "hutool", "sweet").parallel().filterIdx((e, i) -> i < 2).toList()); } @Test @@ -350,7 +335,6 @@ public class EasyStreamTest { public void testFindFirstIdx() { final List list = Arrays.asList(null, 2, 3); Assertions.assertEquals(1, EasyStream.of(list).findFirstIdx(Objects::nonNull)); - Assertions.assertEquals(-1, (Object) EasyStream.of(list).parallel().findFirstIdx(Objects::nonNull)); } @Test @@ -370,7 +354,6 @@ public class EasyStreamTest { public void testFindLastIdx() { final List list = Arrays.asList(1, null, 3); Assertions.assertEquals(2, (Object) EasyStream.of(list).findLastIdx(Objects::nonNull)); - Assertions.assertEquals(-1, (Object) EasyStream.of(list).parallel().findLastIdx(Objects::nonNull)); } @Test