From 328a9d612f2690e3ae8432871ffbf9961eb77324 Mon Sep 17 00:00:00 2001 From: Looly Date: Sun, 11 Jun 2023 23:25:50 +0800 Subject: [PATCH 1/5] fix test --- .../org/dromara/hutool/crypto/asymmetric/PaillierTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/hutool-crypto/src/test/java/org/dromara/hutool/crypto/asymmetric/PaillierTest.java b/hutool-crypto/src/test/java/org/dromara/hutool/crypto/asymmetric/PaillierTest.java index b4c3f3a83..44f1144df 100755 --- a/hutool-crypto/src/test/java/org/dromara/hutool/crypto/asymmetric/PaillierTest.java +++ b/hutool-crypto/src/test/java/org/dromara/hutool/crypto/asymmetric/PaillierTest.java @@ -15,14 +15,12 @@ package org.dromara.hutool.crypto.asymmetric; import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.crypto.asymmetric.paillier.PaillierCrypto; import org.dromara.hutool.crypto.asymmetric.paillier.PaillierKeyPairGenerator; -import org.dromara.hutool.crypto.asymmetric.paillier.PaillierProvider; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; -import java.security.Security; public class PaillierTest { @Test @@ -35,7 +33,6 @@ public class PaillierTest { @Test void keyPairGeneratorByJceTest() throws NoSuchAlgorithmException { - Security.addProvider(new PaillierProvider()); final KeyPairGenerator generator = KeyPairGenerator.getInstance("Paillier"); final KeyPair keyPair = generator.generateKeyPair(); Assertions.assertNotNull(keyPair.getPrivate()); From add4a44039667b46c2d435f0a5c992d34b844fb1 Mon Sep 17 00:00:00 2001 From: Looly Date: Mon, 12 Jun 2023 22:40:11 +0800 Subject: [PATCH 2/5] =?UTF-8?q?JSONUtil=E6=94=AF=E6=8C=81=E5=AF=B9?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E7=B1=BB=E5=9E=8B=E7=9A=84=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/hutool/json/JSONUtil.java | 11 +++++--- .../dromara/hutool/json/IssueI7CW27Test.java | 27 +++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 hutool-json/src/test/java/org/dromara/hutool/json/IssueI7CW27Test.java diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java b/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java index 2eaf52c6f..d8bf3a09f 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/JSONUtil.java @@ -12,8 +12,9 @@ package org.dromara.hutool.json; -import org.dromara.hutool.core.io.file.FileUtil; +import org.dromara.hutool.core.convert.Convert; import org.dromara.hutool.core.io.IORuntimeException; +import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.reflect.TypeReference; import org.dromara.hutool.core.text.StrUtil; @@ -27,7 +28,10 @@ import org.dromara.hutool.json.writer.JSONValueWriter; import org.dromara.hutool.json.writer.JSONWriter; import org.dromara.hutool.json.xml.JSONXMLUtil; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; import java.lang.reflect.Type; import java.nio.charset.Charset; import java.util.List; @@ -388,7 +392,8 @@ public class JSONUtil { return ((JSON) json).toBean(type); } - throw new JSONException("Unsupported json string to bean : {}", json); + //issue#I7CW27,其他类型使用默认转换 + return Convert.convert(type, json); } // -------------------------------------------------------------------- toBean end diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7CW27Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7CW27Test.java new file mode 100644 index 000000000..154573948 --- /dev/null +++ b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7CW27Test.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.json; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class IssueI7CW27Test { + + @Test + void longToBeanTest() { + final String number = "123123123"; + final Long bean = JSONUtil.toBean(number, Long.class); + + Assertions.assertEquals(123123123L, bean); + } +} From 169c625f3b7aafd94ceba9fd9fe5f3f55e2021a8 Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Tue, 13 Jun 2023 11:18:30 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[fix]=20=E5=A4=84=E7=90=86=E5=B9=B6?= =?UTF-8?q?=E8=A1=8C=E6=B5=81=E4=B8=8Bzip=E7=AD=89=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E4=BA=8EtoIdxMap=E5=87=BD=E6=95=B0=E6=97=B6=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E9=A1=BA=E5=BA=8F=E9=97=AE=E9=A2=98=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=95=B0=E6=8D=AE=E9=A1=BA=E5=BA=8F=E9=94=99?= =?UTF-8?q?=E4=B9=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/stream/TerminableWrappedStream.java | 19 +++++----- .../stream/TransformableWrappedStream.java | 37 ++++++++++--------- 2 files changed, 29 insertions(+), 27 deletions(-) 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 1fc622393..c31d4ca00 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 @@ -12,10 +12,10 @@ package org.dromara.hutool.core.stream; +import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.mutable.MutableInt; import org.dromara.hutool.core.lang.mutable.MutableObj; -import org.dromara.hutool.core.array.ArrayUtil; import java.util.*; import java.util.function.*; @@ -214,7 +214,7 @@ public interface TerminableWrappedStream Map toIdxMap(final Function valueMapper) { final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - return EasyStream.of(toList()).toMap(e -> index.incrementAndGet(), valueMapper, (l, r) -> r); + return EasyStream.of(parallel().toList()).toMap(e -> index.incrementAndGet(), valueMapper, (l, r) -> r); } // region ============ to zip ============ @@ -505,9 +505,10 @@ public interface TerminableWrappedStream action) { Objects.requireNonNull(action); - if (isParallel()) { - EasyStream.of(toIdxMap().entrySet()).parallel(isParallel()) - .forEach(e -> action.accept(e.getValue(), e.getKey())); + 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())); @@ -522,10 +523,10 @@ public interface TerminableWrappedStream action) { Objects.requireNonNull(action); - if (isParallel()) { - EasyStream.of(toIdxMap().entrySet()) - .parallel(isParallel()) - .forEachOrdered(e -> action.accept(e.getValue(), e.getKey())); + 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())); 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 efd4b3028..308611eb1 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 @@ -12,6 +12,7 @@ package org.dromara.hutool.core.stream; +import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.iter.IterUtil; import org.dromara.hutool.core.lang.Console; @@ -19,7 +20,6 @@ import org.dromara.hutool.core.lang.mutable.MutableInt; import org.dromara.hutool.core.lang.mutable.MutableObj; import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.map.SafeConcurrentHashMap; -import org.dromara.hutool.core.array.ArrayUtil; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -279,12 +279,13 @@ public interface TransformableWrappedStream action) { Objects.requireNonNull(action); - if (isParallel()) { + final boolean isParallel = isParallel(); + if (isParallel) { final Map idxMap = easyStream().toIdxMap(); return wrap(EasyStream.of(idxMap.entrySet()) - .parallel(isParallel()) - .peek(e -> action.accept(e.getValue(), e.getKey())) - .map(Map.Entry::getValue)); + .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())); @@ -383,12 +384,12 @@ public interface TransformableWrappedStream predicate) { Objects.requireNonNull(predicate); - if (isParallel()) { + final boolean isParallel = isParallel(); + if (isParallel) { final Map idxMap = easyStream().toIdxMap(); - return wrap(EasyStream.of(idxMap.entrySet()) - .parallel(isParallel()) - .filter(e -> predicate.test(e.getValue(), e.getKey())) - .map(Map.Entry::getValue)); + 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())); @@ -440,11 +441,11 @@ public interface TransformableWrappedStream EasyStream flatMapIdx(final BiFunction> mapper) { Objects.requireNonNull(mapper); - if (isParallel()) { + final boolean isParallel = isParallel(); + if (isParallel) { final Map idxMap = easyStream().toIdxMap(); - return EasyStream.of(idxMap.entrySet()) - .parallel(isParallel()) - .flatMap(e -> mapper.apply(e.getValue(), e.getKey())); + 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())); @@ -553,11 +554,11 @@ public interface TransformableWrappedStream EasyStream mapIdx(final BiFunction mapper) { Objects.requireNonNull(mapper); - if (isParallel()) { + final boolean isParallel = isParallel(); + if (isParallel) { final Map idxMap = easyStream().toIdxMap(); - return EasyStream.of(idxMap.entrySet()) - .parallel(isParallel()) - .map(e -> mapper.apply(e.getValue(), e.getKey())); + 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())); From 5b8bbe49436f37ed3e72a621d98d65ab5f9d87e4 Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Tue, 13 Jun 2023 11:29:25 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[fix]=20=E4=BF=AE=E6=94=B9=E4=B8=BAsequenti?= =?UTF-8?q?al?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/hutool/core/stream/TerminableWrappedStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c31d4ca00..1e9aa797a 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 @@ -214,7 +214,7 @@ public interface TerminableWrappedStream Map toIdxMap(final Function valueMapper) { final MutableInt index = new MutableInt(NOT_FOUND_ELEMENT_INDEX); - return EasyStream.of(parallel().toList()).toMap(e -> index.incrementAndGet(), valueMapper, (l, r) -> r); + return EasyStream.of(sequential().toList()).toMap(e -> index.incrementAndGet(), valueMapper, (l, r) -> r); } // region ============ to zip ============ From 928bcc52e372b0667727856d5cdc5a2ac39e7d69 Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Tue, 13 Jun 2023 11:45:55 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[fix]=20=E7=A7=BB=E9=99=A4xxxIdx=E5=AF=B9?= =?UTF-8?q?=E5=B9=B6=E8=A1=8C=E6=B5=81=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/stream/TerminableWrappedStream.java | 54 ++++++------------- .../stream/TransformableWrappedStream.java | 47 +++------------- .../hutool/core/stream/EasyStreamTest.java | 17 ------ 3 files changed, 25 insertions(+), 93 deletions(-) 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