 Let's discuss how to reverse an array in place. Here's one approach. Start out by creating a new array to hold the reversed content. Java will initialize all the entries to zero. Then set an index to the start of the original array and an index to the end of the reversed array. Copy that element from the original array to the reversed array. Move the original array index forward and the reversed array index backward. And copy that element from the original array to the reversed array. Move the original array index forward and the reversed array index backward again. Keep doing this copying and moving until you get to the end of the original array and the beginning of the reversed array. And you'll have two arrays. But the assignment says to update the original array in place. That means we need to run another loop whose index starts at zero and copies elements from the reversed array back into the original array one after another until the loop hits the end of the reversed array. Now you can return from the reverse in place method and the original array is reversed. The good news about this approach is that it's clear to understand. The bad news is that it requires a new array and does a lot of copying of values. Let's try a different approach. As before, set up an index to the start of the array and the end of the array. Instead of making a new array, we'll swap the entries at those two positions. Then move the index forward and the reverse index backward. And swap those entries. Continue to move the index forward and the reverse index backwards and swap until the array is reversed. This code will probably be best expressed as a while loop in your program. When is the array reversed? Figuring out the condition for ending the loop is your job. Run through the loop by hand on the first array, which has an even number of elements, as well as an array that has an odd number of elements to make sure that your loop condition is correct in both cases.