Преобразование 2 длинных в соответствующий байт [] и объединение с разделителем между - PullRequest
0 голосов
/ 07 марта 2011

Мне нужно преобразовать 2 длинных в соответствующий байт [], а затем объединить их с разделителем между ними.Какой самый эффективный способ сделать это?(Мне нужно сохранить результирующий байт [] в базе данных.)

         like I have-
         long a=5324565343L  
         long b=423456L

, тогда я хочу, чтобы представление байта [] было:: Не могу понять, что было на самом деле неясно, но все еще для уточнения, у меня изначально есть 2 long (s), и я просто хочу байт [] их объединенной формы.

Ответы [ 3 ]

2 голосов
/ 07 марта 2011

Используйте ByteBuffer из java.nio.ByteBuffer:

    long a = 5324565343L;
    long b = 423456L;
    byte[] bytes = new byte[18];
    ByteBuffer buffer = ByteBuffer.wrap(bytes);
    buffer.putLong(a);
    buffer.putChar('-');
    buffer.putLong(b);
1 голос
/ 07 марта 2011

Мне нужно разместить его с действительно высокопроизводительным кодом в моем приложении.

Нет, не надо.

Учтите это:

  • Время, которое вы сэкономите, избегая создания строк, вероятно, будет меньше микросекунды.

  • Время, необходимое для выполнения вставки SQL через JDBCСоединение, вероятно, будет измеряться в миллисекундах.

Другими словами, оптимизация этой конкретной операции может оказать незначительное влияние на общую производительность вашего приложения.

1 голос
/ 07 марта 2011

Сконцентрируйте их и вызовите getBytes() в полученной строке.

Что-то вроде:

(a + "-" + b).getBytes();
...