Создайте ArrayList строк в Java так просто, как можно в Javascript - PullRequest
8 голосов
/ 07 июля 2010

В 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");

В моем реальном сценарии в ArrayList у меня есть 30-40 элементов ... Я думаю, что должен быть более простой способ! Что за очевидный момент я пропускаю?

Ответы [ 5 ]

14 голосов
/ 07 июля 2010

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

1 голос
/ 07 июля 2010

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

1 голос
/ 07 июля 2010

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;
}
0 голосов
/ 07 июля 2010

как показано ниже, используя код 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 голосов
/ 07 июля 2010

С учетом того, что я сам изучаю Коллекции 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
бар
баз
боз
газ
гоз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...