В Java я хочу преобразовать short [] в double [] - PullRequest
1 голос
/ 13 декабря 2010

Я использую массив short[]:

short[] buffer = new short[bufferSize];

У меня есть метод, который принимает в качестве параметра тип double[], поэтому я не могу передать его как есть. Мне нужно превратить это в double[]. Лучшее, что я сделал, - это создаю новый объект, перебираю и конвертирую, как это:

double[] transformed = new double[bufferSize];

for (int j=0;j<bufferSize;j++) {
    transformed[j] = (double)buffer[j];
}

Я еще даже не тестировал вышеуказанный подход, но мне интересно, есть ли лучший способ сделать это?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 декабря 2010

Это так же хорошо, как и получается, хотя вы можете просто использовать buffer.length вместо buffersize.

1 голос
/ 13 декабря 2010

Ответ, предоставленный Лоуренсом, является правильным и должен быть принят, но стоит отметить, что в Java существует несколько способов копирования массива. См. эту статью для объяснения каждого метода.

  • использовать различные методы copyOf и copyOfRange класса Arrays
  • использовать System.arraycopy - полезно при копировании частей массива
  • вызовите его метод клонирования и выполните приведение - самый простой стиль, но выполняется только неглубокий клон
  • использовать цикл for - более одной строки, и требуется индекс цикла
...