如何在java中反转字节数组?

时间:2012-10-15 10:32:20

标签: java

  

可能重复:
  How do I reverse an int array in Java?

java中用于在C#中执行Array.Reverse(bytearray)的等效函数是什么?

3 个答案:

答案 0 :(得分:13)

您可以对Collections.reverse上运行的list返回的Arrays.asList使用Array: -

    Byte[] byteArr = new Byte[5];

    byteArr[0] = 123; byteArr[1] = 45;
    byteArr[2] = 56;  byteArr[3] = 67;
    byteArr[4] = 89;

    List<Byte> byteList = Arrays.asList(byteArr); 

    Collections.reverse(byteList);  // Reversing list will also reverse the array

    System.out.println(byteList);
    System.out.println(Arrays.toString(byteArr));

输出: -

[89, 67, 56, 45, 123]
[89, 67, 56, 45, 123] 

更新: - 或者,您也可以使用:Apache Commons ArrayUtils#reverse方法,直接对基本类型数组进行操作: -

byte[] byteArr = new byte[5];
ArrayUtils.reverse(byteArr);

答案 1 :(得分:10)

public static void reverse(byte[] array) {
      if (array == null) {
          return;
      }
      int i = 0;
      int j = array.length - 1;
      byte tmp;
      while (j > i) {
          tmp = array[j];
          array[j] = array[i];
          array[i] = tmp;
          j--;
          i++;
      }
  }

答案 2 :(得分:2)

您可以使用java.util.Collections.reverse()。它需要java.util.List作为输入参数。因此,您应该通过执行Arrays.asList(byteArray)或通过创建List对象并将字节值添加到其中来将byteArray转换为List。