There are many features that are missing from the Java Collections API that 
should be added to the Java Collections API, including the following:

  *   Bidirectional iterators for collections other than lists
     *   New interfaces
        *   BidiIterator - bidirectional iterator
           *   extended by ListIterator interface
           *   has hasPrevious() and previous() methods
        *   ReverseIterable - reverse iterable
           *   extends Iterable
           *   extended by List, Deque, NavigableSet, and BidiIterable
           *   has descendingIterator() and reverseForEach(Consumer<? super T>) 
methods
        *   BidiIterable - bidirectional iterable
           *   extends ReverseIterable
           *   bidiIterator() returns a BidiIterator
           *   bidiIteratorFromEnd() returns a BidiIterator that is positioned 
just past the last element in the collection
           *   extended by List, BidiIterableCollection, BidiIterableSet, 
BidiIterableNavigableSet, and BidiIterableDeque
        *   BidiIterableCollection - bidirectional iterable collection, extends 
BidiIterable and Collection
           *   extended by List, BidiIterableSet, BidiIterableNavigableSet, and 
BidiIterableDeque
           *   default implementation of bidiIterator() method added to the 
java.util.List interface that delegates to java.util.List.listIterator()
           *   default implementation of bidiIteratorFromEnd() method added to 
the java.util.List interface that delegates to 
java.util.List.listIterator(size())
        *   BidiIterableSet - bidirectional iterable set, extends 
BidiCollection and Set
        *   BidiIterableNavigableSet - bidirectional iterable navigable 
iterable set, extends BidiIterableSet and NavigableSet
           *   subSet(), headSet(), and tailSet() all return 
BidiIterableNavigableSet instances
        *   BidiIterableDeque - bidirectional iterable deque, extends 
BidiCollection and Deque
        *   BidiIterableMap - bidirectional iterable map
           *   extends Map
           *   keySet() and entrySet() return BidiIterableSet
           *   values() returns BidiCollection
           *   has reverseForEach(BiConsumer<? super K, ? super V>) method
        *   BidiIterableNavigableMap - bidirectional iterable navigable map
           *   extends BidiIterableMap and NavigableMap
           *   keySet(), navigableKeySet(), and descendingKeySet() all return 
BidiNavigableSet
           *   entrySet() returns BidiIterableSet
           *   values() returns BidiCollection
           *   subMap(), headMap() and tailMap() all return 
BidiIterableNavigableMap instances
     *   BidiIterableDeque interface implemented on java.util.ArrayDeque, 
java.util.concurrent.ConcurrentLinkedDeque, 
java.util.concurrent.LinkedBlockingDeque, and java.util.LinkedList
     *   BidiIterableSet interface implemented on java.util.LinkedHashSet, 
java.util.TreeSet, and java.util.concurrent.ConcurrentSkipListSet
     *   BidiIterableNavigableSet interface implemented on java.util.TreeSet 
and java.util.concurrent.ConcurrentSkipListSet
     *   BidiIterableMap interface implemented on java.util.LinkedHashMap, 
java.util.TreeMap, and java.util.concurrent.ConcurrentSkipListMap
     *   BidiIterableNavigableMap interface implemented on java.util.TreeMap 
and java.util.concurrent.ConcurrentSkipListMap
  *   Pollable interface
     *   Extended by the Queue, Deque, and NavigableSet interfaces
     *   Also implemented by the java.lang.ref.ReferenceQueue class
     *   Contains the poll() method, which is already defined by the Queue and 
Deque interfaces
  *   BidiPollable interface
     *   Extends the Pollable interface
     *   Extended by the Deque and NavigableSet interfaces
     *   Contains the pollFirst() and pollLast() methods, which are already 
defined in both the Deque and NavigableSet interfaces
  *   Navigable versions of java.util.EnumMap and java.util.EnumSet
     *   Option #1: Implement the NavigableMap interface on top of 
java.util.EnumMap and java.util.EnumSet
     *   Option #2: Implement separate java.util.NavigableEnumMap and 
java.util.NavigableEnumSet classes that behave similarly to the existing 
java.util.EnumMap and java.util.EnumSet classes, except that the 
java.util.NavigableEnumMap class has the functionality of the 
java.util.NavigableMap interface and that the java.util.NavigableEnumSet class 
has the functionality of the java.util.NavigableSet interface.
     *   Under both options, the comparator() method of the navigable versions 
of EnumMap and EnumSet would return null
     *   Navigable versions of EnumMap and EnumSet are possible since all enum 
types implement the Comparable interface
  *   New enhanced map and set implementations
     *   Support for hash maps and hash sets with custom hashcode function and 
custom equality predicate
     *   Enhanced map interface that defines a Optional<V> getIfPresent(K key) 
method that returns the following:
        *   A non-empty optional if the key is contained in the map and the 
value is non-null
        *   An empty optional if the key is contained in the map, but the value 
is null
        *   null if the map does not contain key

Will these enhancements ever make it into Java SE 10 or Java SE 11?

  *

Reply via email to