Создание строки [] из разделителя гуавы - PullRequest
26 голосов
/ 30 сентября 2011

Есть ли более эффективный способ создания массива строк из Splitter Guava , чем следующий?

Lists.newArrayList(splitter.split()).toArray(new String[0]);

Ответы [ 2 ]

27 голосов
/ 30 сентября 2011

Возможно, не намного эффективнее, но намного понятнее будет Iterables.toArray(Iterable, Class)

Это в значительной степени делает то, что вы уже делаете:

public static <T> T[] toArray(Iterable<? extends T> iterable, Class<T> type) {
    Collection<? extends T> collection = toCollection(iterable);
    T[] array = ObjectArrays.newArray(type, collection.size());
    return collection.toArray(array);
}

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

17 голосов
/ 30 сентября 2011

Как насчет

Iterables.toArray(splitter.split(), String.class);

, поскольку существует метод Iterables.toArray()

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