Skip to content

Commit bcbdea0

Browse files
author
1399852153
committed
filter bug修复
1 parent ae41082 commit bcbdea0

4 files changed

Lines changed: 16 additions & 25 deletions

File tree

src/main/java/stream/Stream.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ private <R> R reduce(R initVal, BiFunction<R,R,T> accumulator, Stream<T> stream)
212212
}
213213

214214
private Stream<T> limit(int num,Stream<T> stream){
215-
if(num == 0){
215+
if(num == 0 || stream.isEmptyStream()){
216216
return StreamInterface.makeEmptyStream();
217217
}
218218

src/test/java/FlatMapTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ public static void main(String[] args){
1717

1818
private static void testCollectionGenerator(){
1919
List<String> teamIndia = Arrays.asList("11", "12", "13");
20-
List<String> teamAustralia = Arrays.asList("21", "22", "23");
20+
List<String> teamAustralia = Arrays.asList("21", "22", "23","24");
2121
List<String> teamEngland = Arrays.asList("31", "32", "33");
2222
List<String> teamNewZeland = Arrays.asList("41", "42", "43");
23-
List<String> teamSouthAfrica = Arrays.asList("51", "52", "53");
23+
List<String> teamSouthAfrica = Arrays.asList("52", "53");
2424

2525
List<List<String>> playersInWorldCup2016 = new ArrayList<>();
2626
playersInWorldCup2016.add(teamIndia);
@@ -31,8 +31,8 @@ private static void testCollectionGenerator(){
3131

3232
CollectionStreamGenerator.getListStream(playersInWorldCup2016)
3333
.flatMap(CollectionStreamGenerator::getListStream)
34-
.filter(item->item.endsWith("2"))
35-
.limit(3)
34+
.filter(item->item.endsWith("4"))
35+
.limit(2)
3636
.forEach(System.out::println);
3737
}
3838
}

src/test/java/TestJDKStream.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,24 @@
1212
public class TestJDKStream {
1313

1414
public static void main(String[] args){
15-
List<String> teamIndia = Arrays.asList("Virat", "Dhoni", "Jadeja");
16-
List<String> teamAustralia = Arrays.asList("Warner", "Watson", "Smith");
17-
List<String> teamEngland = Arrays.asList("Alex", "Bell", "Broad");
18-
List<String> teamNewZeland = Arrays.asList("Kane", "Nathan", "Vettori");
19-
List<String> teamSouthAfrica = Arrays.asList("AB", "Amla", "Faf");
20-
List<String> teamWestIndies = Arrays.asList("Sammy", "Gayle", "Narine");
21-
List<String> teamSriLanka = Arrays.asList("Mahela", "Sanga", "Dilshan");
22-
List<String> teamPakistan = Arrays.asList("Misbah", "Afridi", "Shehzad");
15+
List<String> teamIndia = Arrays.asList("11", "12", "13");
16+
List<String> teamAustralia = Arrays.asList("21", "22", "23","24");
17+
List<String> teamEngland = Arrays.asList("31", "32", "33");
18+
List<String> teamNewZeland = Arrays.asList("41", "42", "43");
19+
List<String> teamSouthAfrica = Arrays.asList("52", "53");
2320

2421
List<List<String>> playersInWorldCup2016 = new ArrayList<>();
2522
playersInWorldCup2016.add(teamIndia);
2623
playersInWorldCup2016.add(teamAustralia);
2724
playersInWorldCup2016.add(teamEngland);
2825
playersInWorldCup2016.add(teamNewZeland);
2926
playersInWorldCup2016.add(teamSouthAfrica);
30-
playersInWorldCup2016.add(teamWestIndies);
31-
playersInWorldCup2016.add(teamSriLanka);
32-
playersInWorldCup2016.add(teamPakistan);
3327

3428
// Now let's do this in Java 8 using FlatMap
3529
playersInWorldCup2016.stream()
3630
.flatMap(pList -> pList.stream())
31+
.filter(item->item.endsWith("4"))
32+
.limit(3)
3733
.forEach(System.out::println);
38-
39-
System.out.println("List of all Players using Java 8");
40-
// System.out.println(flatMapList);
41-
42-
// playersInWorldCup2016.stream().reduce();
4334
}
4435
}

src/test/java/TestMyStream.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
public class TestMyStream {
99

1010
public static void main(String[] args){
11-
Stream<Integer> intStream = IntegerStreamGenerator.getIntegerStream(1,10);
11+
Stream<Integer> intStream = IntegerStreamGenerator.getIntegerStream(1,2);
1212

13-
intStream = intStream.filter(TestMyStream::idOdd);
14-
intStream = intStream.map(TestMyStream::scaleTwo);
13+
// intStream = intStream.filter(TestMyStream::idOdd);
14+
// intStream = intStream.map(TestMyStream::scaleTwo);
1515
// intStream = intStream.map(TestMyStream::square);
16-
// intStream = intStream.limit(3);
16+
intStream = intStream.limit(3);
1717

1818
// int max = intStream.min(Integer::compareTo);
1919
//

0 commit comments

Comments
 (0)