Существует еще один вариант, если ваша цель - создать фиксированный список во время выполнения, который так же прост, как и эффективен:
static final ArrayList<Element> myList = generateMyList();
private static ArrayList<Element> generateMyList() {
final ArrayList<Element> result = new ArrayList<>();
result.add(new Element(1));
result.add(new Element(2));
result.add(new Element(3));
result.add(new Element(4));
return result;
}
Преимущество использования этого шаблона состоит в том, что этот список создается за один раз очень интуитивно, и поэтому его очень легко изменить даже с большими списками или сложной инициализацией, в то время как, с другой стороны, всегда содержит одни и те же элементы при каждом фактическом запуске программы ( если вы не измените его позднее, конечно).