class MappableInfoList<T extends HasName> extends InfoList<T> {
    /** serialVersionUID */
    private static final long serialVersionUID = 1L;

    /**
     * Constructor.
     */
    MappableInfoList() {
        super();
    }

    /**
     * Constructor.
     *
     * @param sizeHint
     *            the size hint
     */
    MappableInfoList(final int sizeHint) {
        super(sizeHint);
    }

    /**
     * Constructor.
     *
     * @param infoCollection
     *            the initial elements
     */
    MappableInfoList(final Collection<T> infoCollection) {
        super(infoCollection);
    }

    /**
     * Get an index for this list, as a map from the name of each list item (obtained by calling {@code getName()}
     * on each list item) to the list item.
     *
     * @return An index for this list, as a map from the name of each list item (obtained by calling
     *         {@code getName()} on each list item) to the list item.
     */
    public Map<String, T> asMap() {
        final Map<String, T> nameToInfoObject = new HashMap<>();
        for (final T i : this) {
            if (i != null) {
                nameToInfoObject.put(i.getName(), i);
            }
        }
        return nameToInfoObject;
    }

    /**
     * Check if this list contains an item with the given name.
     *
     * @param name
     *            The name to search for.
     * @return true if this list contains an item with the given name.
     */
    public boolean containsName(final String name) {
        for (final T i : this) {
            if (i != null && i.getName().equals(name)) {
                return true;
            }
        }
        return false;
    }

    /**
     * Get the list item with the given name, or null if not found.
     *
     * @param name
     *            The name to search for.
     * @return The list item with the given name, or null if not found.
     */
    @SuppressWarnings("null")
    public T get(final String name) {<FILL_FUNCTION_BODY>}
}

        for (final T i : this) {
            if (i != null && i.getName().equals(name)) {
                return i;
            }
        }
        return null;
    
<methods>public boolean equals(java.lang.Object) ,public List<java.lang.String> getAsStrings() ,public List<java.lang.String> getAsStringsWithSimpleNames() ,public List<java.lang.String> getNames() ,public int hashCode() <variables>static final long serialVersionUID