--- jsr166/src/main/java/util/PriorityQueue.java 2017/10/22 17:44:03 1.120 +++ jsr166/src/main/java/util/PriorityQueue.java 2018/05/06 02:08:36 1.122 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -895,4 +895,18 @@ public class PriorityQueue extends Ab return Spliterator.SIZED | Spliterator.SUBSIZED | Spliterator.NONNULL; } } + + /** + * @throws NullPointerException {@inheritDoc} + */ + @SuppressWarnings("unchecked") + public void forEach(Consumer action) { + Objects.requireNonNull(action); + final int expectedModCount = modCount; + final Object[] es = queue; + for (int i = 0, n = size; i < n; i++) + action.accept((E) es[i]); + if (expectedModCount != modCount) + throw new ConcurrentModificationException(); + } }