12

重複の可能性:
Java で int 配列を反転するにはどうすればよいですか?

Array.Reverse(bytearray)C#で実行するJavaの同等の機能は何ですか?

4

3 に答える 3

18
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++;
      }
  }
于 2012-10-15T10:36:50.477 に答える
14

次の操作で返されたCollections.reverse上で使用できます: -listArrays.asListArray

    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] 

UPDATE : - または、次の方法も使用できます:プリミティブ型配列を直接操作するメソッド: -Apache Commons ArrayUtils#reverse

byte[] byteArr = new byte[5];
ArrayUtils.reverse(byteArr);
于 2012-10-15T10:35:58.077 に答える
2

を使用できますjava.util.Collections.reverse()java.util.List入力引数として受け取ります。Arrays.asList(byteArray)そのため、List オブジェクトを作成するか、または List オブジェクトを作成してバイト値を追加することにより、byteArray を List に変換する必要があります。

于 2012-10-15T10:37:07.963 に答える