Дан массив чисел arr и интервал k, на котором массив должен быть сгруппирован, переворачивают массив в этом интервале.
На что следует обратить внимание — последний интервал может быть меньше k, в этом случае оставшиеся элементы необходимо поменять местами.

package com.vin.test.array;
//Java program to reverse every sub-array formed by
//consecutive k elements
public class ReverseArrayInGroups {
// Function to reverse every sub-array formed by
// consecutive k elements
static void reverse(int arr[], int n, int k)
{
     for (int i = 0; i < n; i += k)
     {
         int left = i;
        // to handle case when k is not multiple
        // of n
        int right = Math.min(i + k - 1, n - 1);
         int temp;
        // reverse the sub-array [left, right]
        while (left < right)
        {
            temp=arr[left];
            arr[left]=arr[right];
            arr[right]=temp;
            left+=1;
            right-=1;
        }
    }
}
  // Driver method
  public static void main(String[] args)
  {
     int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};
     int k = 3;
     int n = arr.length;
     reverse(arr, n, k);
     for (int i = 0; i < n; i++)
       System.out.print(arr[i] + " ");
   }
}