Skip to content

Commit 32d82e8

Browse files
committed
limit
1 parent 2d321d5 commit 32d82e8

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

java8/src/test/java/com/github/kuangcp/stream/CreateStreamTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,34 @@ public void testJudgeFinite() {
3939
assertTrue(isFinite(Stream.of(1, 2, 3, 4).limit(1)));
4040
}
4141

42+
/**
43+
* @see java.util.stream.SliceOps#makeInt(java.util.stream.AbstractPipeline.AbstractPipeline, long, long)
44+
*/
4245
@Test
4346
public void testLimitBlocked() throws Exception {
47+
4448
// 从一个集合中随机选取一部分数据出来。 limit的目标值大于集合大小时,就会阻塞
4549
List<String> ids = Arrays.asList("1", "2", "3");
50+
51+
// 有限集合产生的流不会阻塞
52+
// List<String> xl = ids.stream().limit(5).collect(Collectors.toList());
53+
// log.info("xl={}", xl);
54+
55+
56+
Stream.iterate(0, n -> n + 2).distinct().limit(10).forEach(System.out::println);
57+
// Random.RandomIntsSpliterator.tryAdvance
58+
4659
int size = ids.size();
4760
List<String> pick = new Random()
4861
.ints(0, size)
62+
// .peek(v -> System.out.println(v))
4963
.distinct()
5064
.limit(5)
5165
.mapToObj(ids::get)
5266
.collect(Collectors.toList());
5367
log.info("pick={}", pick);
68+
69+
5470
}
5571

5672
<T> boolean isFinite(Stream<T> stream) {

spring/src/test/java/com/github/kuangcp/proxy/salary/jdkproxy/Interceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
*/
66
public interface Interceptor {
77

8-
void interceptor();
8+
void interceptor();
99
}

0 commit comments

Comments
 (0)