Определение универсального интерфейса с операциями добавления и доступа по индексу

Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.

Короткий ответ

Что ответить на собеседовании

Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо создать обобщённый интерфейс, который предоставляет два метода: один для вставки элемента, другой — для получения элемента по заданному индексу. Интерфейс должен быть реализуемым для любых типов данных с помощью дженериков.

package com.narozhnyi;

public interface Indexable {
    // метод для добавления элемента
    // метод для получения элемента по индексу
}

Ответ

Объявите интерфейс Indexable<T>, где add принимает T, а get возвращает T по индексу. Параметр типа задаётся при реализации либо использовании интерфейса.

package com.narozhnyi;

public interface Indexable<T> {
    void add(T element);
    T get(int index);
}

Например, Indexable<String> принимает и возвращает строки без приведения типов. Контракт стоит уточнить: add добавляет в конец, индексы начинаются с нуля, неверный индекс вызывает IndexOutOfBoundsException. Поддержку null определяет реализация. Примитивы напрямую аргументами generics не являются: вместо int используют Integer.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее