Создание строки [] из разделителя Guava Есть ли более эффективный способ создания массива строк из Guava Splitter, чем следующее? Lists.newArrayList(splitter.split()).toArray(new String[0]); Ответ 1 Вероятно, не намного эффективнее, но намного яснее будет 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() создать массив с правильным размером. Ответ 2 Как насчет Iterables.toArray(splitter.split(), String.class); поскольку существует Iterables.toArray() метод
Ответ 1 Вероятно, не намного эффективнее, но намного яснее будет 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() создать массив с правильным размером.
Ответ 2 Как насчет Iterables.toArray(splitter.split(), String.class); поскольку существует Iterables.toArray() метод