Создайте ArrayList строк в Java, столь простом, как каждый может в JavaScript

В JavaScript я могу создать Массив строковых значений как:

var stuff = new Array('foo','bar','baz','boz','gaz','goz');

или еще легче

var stuff = 'foo,bar,baz,boz,gaz,goz'.split(',');

В Java это кажется чрезмерно подробным, и сложный... там более легкий путь, чем это?

ArrayList<String> stuff = new ArrayList<String>();
stuff.add("foo");
stuff.add("bar");
stuff.add("baz");
stuff.add("boz");
stuff.add("gaz");
stuff.add("goz");

В моем фактическом сценарии у меня есть 30-40 объектов, входящих в ArrayList... Я фигурирую там, просто должен быть более легкий путь! Каков очевидный бит, который я пропускаю?

8
задан danny 7 July 2010 в 19:15
поделиться

5 ответов

List strings = Arrays.asList(new String[] {"foo", "bar", "baz"}); или List strings = Arrays.asList("foo,bar,baz". split(","));

14
ответ дан 5 December 2019 в 10:39
поделиться

Arrays.asList() - хороший способ получить реализацию List, хотя технически это не реализация ArrayList, а внутренний тип.

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

public static List<String> create(String... items) {
    List<String> list = new ArrayList<String>(items.length);
    for (String item : items) {
        list.add(item);
    }

    return list;
}
1
ответ дан 5 December 2019 в 10:39
поделиться

Если вы заглушаете 30-40 пунктов в список во время составления, это может быть симптомом большего заболения. Это во многом зависит от того, что вы реализуете. Вы все еще можете использовать split, если вы действительно хотите. Затем просто сделайте массовую вставку в свой список.

1
ответ дан 5 December 2019 в 10:39
поделиться

С оговоркой, что я только сам изучаю Коллекции Java, для меня компилируется и запускается следующее:

import java.util.*;
class ArrayListStrings {
    public static void main(String[] args) {
        String[] stuffArray = {"foo","bar","baz","boz","gaz","goz"};
        ArrayList<String> stuff = new ArrayList<String>();
        stuff.addAll(Arrays.asList(stuffArray));
        for (int i = 0; i < stuff.toArray().length; i++)
            System.out.println(stuff.toArray()[i]);   
    }
}

Результат:

foo
бар
баз
boz
газ
goz

0
ответ дан 5 December 2019 в 10:39
поделиться

как использовать приведенный ниже код, используя http://code.google.com/p/guava-libraries/

import static com.google.common.collect.Lists.*;

List<String> stuff = newArrayList("foo","bar","baz","boz","gaz","goz");
0
ответ дан 5 December 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: