@Override
    public List<Entry<String, String>> getEntries() {
        List<Entry<String, String>> entryList = new ArrayList<>(keyCount);
        // Look at all top-level elements
        for (Element oElem : hashArray) {
            if (oElem != null) { // Add any non-null elements
                // If there are multiple values, will also add those
                for (Element iElem = oElem; iElem != null; iElem = iElem.getNext()) {
                    entryList.add(iElem);
                }
            }
        }
        return entryList;
    }
A simple multimap able to accept multiple values for a given key.
<p>
The implementation is specifically tuned for headers (such as HTTP), where
the number of entries tends to be moderate, but are frequently accessed.
</p>
<p>
This map expects ASCII for key strings.
</p>
<p>
Case is ignored (avoiding {@link String#toLowerCase()} <code>String</code> allocation)
before being hashed (<code>xxHash</code>).
</p>
<p>
    Constraints:
<ul>
  <li><strong>Not thread-safe.</strong></li>
  <li><tt>Null</tt> is <strong>not</strong> a valid key.</li>
</ul>
</p>

@author Marc Savy {@literal <msavy@redhat.com>}
gateway/engine/beans/src/main/java/io/apiman/gateway/engine/beans/util/CaseInsensitiveStringMultiMap.java