Как я понимаю, вы не можете использовать только пустой конструктор, потому что у вас есть узел принятия решения в вашей модели, когда вам нужно выбирать между типом списка, так что вам придется сообщать программе любым способом, какой списка будет.
На мой взгляд, это лучшее решение:
public class MyList {
private List<E> list;
public MyList() {
this.list = new LinkedList<E>();
}
//an overload for another type,
public MyList(bool INeedArray) {
if (INeedArray)
this.list = new ArrayList<E>();
}
}