8274715: Implement forEach in Collections.CopiesList
Reviewed-by: martin
This commit is contained in:
parent
d4e8712c0a
commit
df7b0c7077
@ -5182,6 +5182,16 @@ public class Collections {
|
|||||||
return element;
|
return element;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forEach(Consumer<? super E> action) {
|
||||||
|
Objects.requireNonNull(action);
|
||||||
|
int n = this.n;
|
||||||
|
E element = this.element;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
action.accept(element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Object[] toArray() {
|
public Object[] toArray() {
|
||||||
final Object[] a = new Object[n];
|
final Object[] a = new Object[n];
|
||||||
if (element != null)
|
if (element != null)
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package micro.org.openjdk.bench.java.util;
|
||||||
|
|
||||||
|
import org.openjdk.jmh.annotations.*;
|
||||||
|
import org.openjdk.jmh.infra.Blackhole;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see <a href="https://bugs.openjdk.java.net/browse/JDK-8274715">JDK-8274715</a>
|
||||||
|
*/
|
||||||
|
@Fork(value = 3)
|
||||||
|
@State(Scope.Thread)
|
||||||
|
@BenchmarkMode(Mode.AverageTime)
|
||||||
|
@OutputTimeUnit(TimeUnit.NANOSECONDS)
|
||||||
|
@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
|
||||||
|
@Measurement(iterations = 5, time = 2, timeUnit = TimeUnit.SECONDS)
|
||||||
|
public class NCopiesBenchmarks {
|
||||||
|
@Param({"10", "50", "100"})
|
||||||
|
int size;
|
||||||
|
|
||||||
|
private List<Object> list;
|
||||||
|
|
||||||
|
@Setup
|
||||||
|
public void prepare() {
|
||||||
|
list = Collections.nCopies(size, new Object());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Benchmark
|
||||||
|
public void forEach(Blackhole bh) {
|
||||||
|
list.forEach(bh::consume);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user