Implementing quicksort with pivot of first, median or random
quickSortCounter is reset too often
If the goal of the program is to count compares, the counter you are using is being reset in the wrong place.  Right now, you are going to end up with only the number of compares in the last call to partition(), which will likely be close to 0.  You need to move the quickSortCounter = 0 line to right before you call recursiveQuickSort().  That way you will add up all the compares in the entire sort.
You can also do it a different way without using a static variable.  You just need to have partition() be able to return the count to its caller.  One way of doing this would be to have partition() return an int [2] (one int for the partition index and the other int for the number of compares).  Another way is to pass an int [1] or Integer variable into partition() and write the compare count into that variable before returning.
Naming
One thing confused me about your variable names.  You used array as you array everywhere, but then you called it collectionArray in partition().  Why &quot;collection&quot;?