Вспомогательные методы из принятого ответа не нужны. Потоки можно использовать с лямбда-выражениями или обычно сокращать с помощью ссылок на методы . Потоки позволяют выполнять функциональные операции. map()
преобразует элементы и / collect(...)
или toArray()
возвращает поток обратно в массив или коллекцию.
Выступление Венката Субраманиама (видео) объясняет это лучше, чем я.
1 преобразовать List<String>
вList<Integer>
List<String> l1 = Arrays.asList("1", "2", "3");
List<Integer> r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList());
// the longer full lambda version:
List<Integer> r1 = l1.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
2 преобразовать List<String>
вint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 преобразовать String[]
вList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 преобразовать String[]
вint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 преобразовать String[]
вList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (бонус) Конвертировать int[]
вString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
Конечно, возможны и другие варианты.
Также см. Версию Ideone этих примеров . Можно нажать fork, а затем запустить для запуска в браузере.
Lists.transform()
.