Создать ArrayList из массива - PullRequest
       294

Создать ArrayList из массива

3295 голосов
/ 01 октября 2008

У меня есть массив, который инициализируется как:

Element[] array = {new Element(1), new Element(2), new Element(3)};

Я хотел бы преобразовать этот массив в объект класса ArrayList.

ArrayList<Element> arraylist = ???;

Ответы [ 32 ]

0 голосов
/ 05 октября 2013

Существует еще один вариант, если ваша цель - создать фиксированный список во время выполнения, который так же прост, как и эффективен:

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;
}


Преимущество использования этого шаблона состоит в том, что этот список создается за один раз очень интуитивно, и поэтому его очень легко изменить даже с большими списками или сложной инициализацией, в то время как, с другой стороны, всегда содержит одни и те же элементы при каждом фактическом запуске программы ( если вы не измените его позднее, конечно).

0 голосов
/ 26 июня 2017

Вы можете создать ArrayList, используя Cactoos (я один из разработчиков):

List<String> names = new StickyList<>(
  "Scott Fitzgerald", "Fyodor Dostoyevsky"
);

Нет никакой гарантии, что объект действительно будет класса ArrayList. Если вам нужна эта гарантия, сделайте следующее:

ArrayList<String> list = new ArrayList<>(
  new StickyList<>(
    "Scott Fitzgerald", "Fyodor Dostoyevsky"
  )
);
...