code: public AbstractInsnNode get(final int index) {
          if (index < 0 || index >= size) {
              throw new IndexOutOfBoundsException();
          }
          if (cache == null) {
              cache = toArray();
          }
          return cache[index];
      }
docs: Returns the instruction whose index is given. This method builds a cache
  of the instructions in this list to avoid scanning the whole list each
  time it is called. Once the cache is built, this method run in constant
  time. This cache is invalidated by all the methods that modify the list.
  
  @param index
  the index of the instruction that must be returned.
  @return the instruction whose index is given.
  @throws IndexOutOfBoundsException
  if (index &lt; 0 || index &gt;= size()).