마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

바이트 배열 구간 순서바꾸기에 관해 질문드립니다.

0 추천
만약 byte[4096] 크기의 바이트 배열이 있다고 치면 이것을 4등분하고

순서를 바꿔주고 싶습니다.

예를 들어, byte 0~1023 구간의 자료를 byte 1024 ~2047 과 바꾸고

2048 ~ 3067 의 자료를 3068 ~ 4095 구간과 바꿔 주고 싶다면 어떻게 해야하나요?

혹시 알고 계시다면 답변을 기다리겠습니다. 감사합니다.
준버기 (1,160 포인트) 님이 2018년 7월 9일 질문

1개의 답변

0 추천
대략 아래와 같이 하시면 될 듯 합니다.

상상 코딩이라. offset 값이 맞나 모르겠네요...ㅎㅎ

ByteBuffer dst = ByteBuffer.allocate(4096);  
dst.put(src,1023, 1024);
dst.put(src,0, 1024);
dst.put(src,3067, 1024);
dst.put(src,2047, 1024);

src = dst.array();

혹은 아래와 같이 해 주셔도 됩니다.

byte dst[] = new  byte[4096];
System.arraycopy(src, 1023, dst, 0, 1024);
System.arraycopy(src, 0, dst, 1023, 1024);
System.arraycopy(src, 3067, dst, 2047, 1024);
System.arraycopy(src, 2047, dst, 3067, 1024);

src = dst;
익명사용자 님이 2018년 7월 9일 답변
2018년 7월 9일 수정
...