hpack/src/main/java/com/twitter/hpack/DynamicTable.java
public HeaderField getEntry(int index) {
    if (index <= 0 || index > length()) {
      throw new IndexOutOfBoundsException();
    }
    int i = head - index;
    if (i < 0) {
      return headerFields[i + headerFields.length];
    } else {
      return headerFields[i];
    }
  }
public HeaderField getEntry(int index) {
    if (index <= 0 || index > length()) {
      throw new IndexOutOfBoundsException();
    }
    int i = head - index;
    if (i < 0) {
      return headerFields[i + headerFields.length];
    } else {
      return headerFields[i];
    }
  }
Return the header field at the given index.
The first and newest entry is always at index 1,
and the oldest entry is at the index length().