2016-12-23 4 views
0

Я пытаюсь преобразовать массив строк в массив поплавков в Java, есть ли более элегантный способ сделать это, чем проходить через каждый элемент массива строк с петлей и преобразования его в поплавок, используя что-то вроде Float.parseFloat(strings[i])?Преобразование массива строк в массив поплавков в java

+0

Я предполагаю, что у вас есть итерация по каждому элементу массива. И в то время, когда Float.parseFloat проверяет, имеет ли элемент тип Float, используя ключевое слово instanceof – Chinmay

ответ

2

Я не знаю, если это действительно лучше, но с использованием Java 8 можно преобразовать массив со следующим образом:

String[] strings = new String[] {"1", "2", "3", "4"}; 
Float[] floats = Arrays.stream(strings).map(Float::valueOf).toArray(Float[]::new); 

Если вы хотите использовать double вместо этого вы могли бы использовать примитивный тип (к сожалению, пары не дают что-то вроде mapToFloat или FLoatStream класса, смотрите здесь details):

double[] doubles = Arrays.stream(strings).mapToDouble(Double::parseDouble).toArray(); 

Примечание:

Пожалуйста, обратите внимание также разницу с помощью parseDouble против valueOf:
parseDouble возвращает примитивный тип, в то время как valuOf возвращает упакованный тип.

+0

Я полагаю, вы могли бы использовать 'float [] :: new' вместо этого нет? –

+0

Я думаю, что valueOf будет более выполнимым – Jobin

+0

это все равно пройдет через каждый элемент массива строк, хотя его действительно более элегантно – xro7

Смежные вопросы