#java #function #generics #insert
#java #функция #дженерики #вставить
Вопрос:
public interface IGenericList<T> {
void insert(T element);
void println();
}
public class GenericList<T> implements IGenericList<T> {
private T param;
public GenericList(T rootValue) {
param = rootValue;
}
@Override
public void insert(T element) {
param = param element; //error "Operator cannot be applied to 'T', 'T'
}
@Override
public void println() {
System.out.println(param);
}
}
Как я могу реализовать эту функцию? «вставить»
Я новичок, и это все, что мне дано в задаче
Комментарии:
1. У вас должно быть что-то похожее на фактический список. Прямо сейчас у вас есть место только для одного элемента; вы ничего не можете вставить с тем, что у вас есть.
Ответ №1:
Я не знаю, для чего вам нужен IGenericList, потому что интерфейс списка уже является общим и для всех реализаций, но я не знаю всех бизнес-аспектов. Для вставки некоторых данных вам нужна правильная структура данных, классическая структура данных для этого — array . Я написал общую логику для типа поля массива в общем стиле.
public interface IGenericList<T> {
void insert(int index, T element);
void append(T element);
void println();
}
public static class GenericList<T> implements IGenericList<T> {
private T[] params;
public GenericList(T[] rootValue) {
this.params = rootValue;
}
@Override
public void insert(int index, T element) {
if(index > params.length) {
throw new IndexOutOfBoundsException();
}
params[index] = element;
}
@Override
public void append(T element) {
//find first null value or expand array and add value
}
@Override
public void println() {
System.out.println(Arrays.toString(params));
}
}