src/share/classes/java/util/List.java

Print this page
rev 6197 : [mq]: collections

@@ -23,10 +23,12 @@
  * questions.
  */
 
 package java.util;
 
+import java.util.function.UnaryOperator;
+
 /**
  * An ordered collection (also known as a <i>sequence</i>).  The user of this
  * interface has precise control over where in the list each element is
  * inserted.  The user can access elements by their integer index (position in
  * the list), and search for elements in the list.<p>

@@ -595,6 +597,35 @@
      * @throws IndexOutOfBoundsException for an illegal endpoint index value
      *         (<tt>fromIndex &lt; 0 || toIndex &gt; size ||
      *         fromIndex &gt; toIndex</tt>)
      */
     List<E> subList(int fromIndex, int toIndex);
+
+    /**
+     * Apply the specified operator to each element of this list, replacing
+     * the element with the result of applying the operator to the current
+     * element.
+     *
+     * @param operator the operator to apply to each element
+     * @throws NullPointerException if the specified operator is null
+     * @since 1.8
+     */
+    public default void replaceAll(UnaryOperator<E> operator) {
+        Objects.requireNonNull(operator);
+        final ListIterator<E> li = this.listIterator();
+        while (li.hasNext()) {
+            li.set(operator.operate(li.next()));
+        }
+    }
+
+    /**
+     * Sort this list using the supplied {@code Comparator} to compare elements.
+     *
+     * @param c the {@code Comparator} used to compare list elements
+     * @throws NullPointerException if the specified comparator is null
+     * @since 1.8
+     */
+    public default void sort(Comparator<? super E> c) {
+        Objects.requireNonNull(c);
+        Collections.<E>sort(this, c);
+    }
 }