Как использовать ArrayList.addAll ()? - PullRequest
35 голосов
/ 24 января 2012

Я хочу заполнить ArrayList этими символами +, -, *, ^ и т. Д. Как я могу сделать это, не добавляя каждый символ с arrayList.add()?

Ответы [ 6 ]

79 голосов
/ 24 января 2012

Collections.addAll - это то, что вы хотите.

Collections.addAll(myArrayList, '+', '-', '*', '^');

Другой вариант - передать список в конструктор, используя Arrays.asList , например:

List<Character> myArrayList = new ArrayList<Character>(Arrays.asList('+', '-', '*', '^'));

Если, однако, у вас все в порядке с массивом arrayList фиксированной длины, вы можете приступить к созданию просто, как list = Arrays.asList(...). Спецификация Arrays.asList гласит, что он возвращает список фиксированной длины , который действует как мост к переданному массиву, что может быть не тем, что вам нужно.

7 голосов
/ 24 января 2012

Если у вас есть ArrayList, который содержит символы, вы можете сделать это:

List<Character> list = new ArrayList<Character>();
list.addAll(Arrays.asList('+', '-', '*', '^'));
3 голосов
/ 03 мая 2013

Вы можете использовать Google guava как таковой:

ImmutableList<char> dirs = ImmutableList.of('+', '-', '*', '^');
1 голос
/ 24 января 2012

Вы можете использовать метод asList с varargs, чтобы сделать это в одной строке:

java.util.Arrays.asList('+', '-', '*', '^');

Если список не нуждается в дальнейшем изменении, этого уже будет достаточно. В противном случае вы можете передать его конструктору ArrayList для создания изменяемого списка:

new ArrayList(Arrays.asList('+', '-', '*', '^'));
0 голосов
/ 24 января 2012

Используйте Arrays класс в Java, который вернет вам ArrayList:

final List<String> characters = Arrays.asList("+","-");

Вам понадобится немного больше работы, если вам нужен List<Character>.

0 голосов
/ 24 января 2012

Может быть, это помогает

List<String> l = Arrays.asList("+","-");
...