Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8206123

ArrayDeque created with default constructor can only hold 15 elements

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P5 P5
    • 12
    • None
    • core-libs
    • None

      The spec states that a deque created with the default constructor should be able to hold 16 elements.

      https://docs.oracle.com/javase/10/docs/api/java/util/ArrayDeque.html#%3Cinit%3E()
      """
      Constructs an empty array deque with an initial capacity sufficient to hold 16 elements.
      """

      In the constructor an array of size 16 is created:
              elements = new Object[16];

      However, one element is always null:
          /**
           * The array in which the elements of the deque are stored.
           * All array cells not holding deque elements are always null.
           * The array always has at least one null slot (at tail).
           */
          transient Object[] elements;

      which leaves us space for only 15 elements, contrarily to what the spec promises.

            martin Martin Buchholz
            igerasim Ivan Gerasimov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: