private void reverse(Object[] anArray){
if (anArray == null){
return;
}
reverseArgrithmTwo(anArray);
}
// private void reverseArgrithmOne(Object[] anArray){
// int maxIndex = anArray.length - 1;
// for (int index=(maxIndex-1)>>1;index>=0;index--) {
// Object temp = anArray[index];
// anArray[index] = anArray[maxIndex - index];
// anArray[maxIndex-index] = temp;
// }
// }
private void reverseArgrithmTwo(Object[] anArray){
for (int index = 0; index<anArray.length/2;index++)
{
Object temp = anArray[index];
anArray[index]= anArray[anArray.length-1-index];
anArray[anArray.length-1-index] = temp;
}
}
The test cases go below:
@Test
public void reverseAnArray(){
Integer[] original = {3,5,1,-2,0};
reverse(original);
assertArrayEquals(new Integer[]{0,-2,1,5,3}, original);
}
@Test
public void reverseAnOnlyOneElementArray(){
Integer[] oneElementArray = {5};
reverse(oneElementArray);
assertArrayEquals(new Integer[]{5}, oneElementArray);
}
@Test public void reverseArrayHasZeroElement(){
Integer[] zeroElementArray = new Integer[0];
reverse(zeroElementArray);
assertArrayEquals(new Integer[0], zeroElementArray);
}
@Test
public void reverseNullArray(){
Integer[] nullArray = null;
reverse(nullArray);
assertNull(nullArray);
}