Skip to content

Commit a0c3a1b

Browse files
committed
Match code sample in book
1 parent 0cb42d0 commit a0c3a1b

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

SecondEdition/Filter/filter-benchmark/src/main/java/net/sdo/FilterTest.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
package net.sdo;
3333

3434
import java.util.ArrayList;
35+
import java.util.List;
3536
import java.util.Optional;
37+
import java.util.function.Predicate;
3638
import java.util.stream.Stream;
3739

3840
import org.openjdk.jmh.annotations.Benchmark;
@@ -107,22 +109,21 @@ public void countIterator(Blackhole bh) {
107109
bh.consume(count);
108110
}
109111

110-
private ArrayList<String> calcArray(ArrayList<String> src,
111-
int c, char target) {
112+
private ArrayList<String> calcArray(List<String> src, Predicate<String> p) {
112113
ArrayList<String> dst = new ArrayList<>();
113114
for (String s : src) {
114-
if (s.charAt(c) != target)
115+
if (p.test(s))
115116
dst.add(s);
116117
}
117118
return dst;
118119
}
119120

120121
@Benchmark
121122
public void calcEager(Blackhole bh) {
122-
ArrayList<String> al1 = calcArray(al, 0, 'A');
123-
ArrayList<String> al2 = calcArray(al1, 1, 'A');
124-
ArrayList<String> al3 = calcArray(al2, 2, 'A');
125-
ArrayList<String> al4 = calcArray(al3, 3, 'A');
123+
ArrayList<String> al1 = calcArray(al, (s) -> s.charAt(0) != 'A');
124+
ArrayList<String> al2 = calcArray(al1, (s) -> s.charAt(1) != 'A');
125+
ArrayList<String> al3 = calcArray(al2, (s) -> s.charAt(2) != 'A');
126+
ArrayList<String> al4 = calcArray(al3, (s) -> s.charAt(3) != 'A');
126127
String answer = al4.get(0);
127128
bh.consume(answer);
128129
}

0 commit comments

Comments
 (0)