Есть некоторые вещи, на которые я хотел бы указать.
Правильно используйте полиморфизм во время выполнения. Вы не можете создать экземпляр интерфейса.
Если вы хотите вставить что-то впереди, используйте метод add, который принимает index и элемент. Если вы хотите вставить что-то сзади, просто используйте метод add. Я пытался редактировать ваш код, и он, кажется, работает отлично. Удачи!
Вот, пожалуйста:
import java.util.ArrayList;
import java.util.List;
public class ListConcatenate {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
List<String> secondList = new ArrayList<>();
list.add(0,"Hello");
list.add("World");
secondList.add(0,"it's");
secondList.add(0,"me");
List<String> result = concatenate(list,secondList);
for(String s : result ) {
System.out.println(s);
}
}
public static<E> List<E> concatenate(List<E> list, List<E> secondList){
//List<E> newList = new List<>();
return new ArrayList<E>(){{
addAll(list);
addAll(secondList);
}};
}
}