The question is, why should it be?
First, your Comparator is completely broken, as it violates the main restriction, which
sign(compare(a,b)) = - sign(compare(b,a))
and
compare(a,a) == 0
So, everything that can be used can bring all kinds of results, such as losing records, starting in an endless loop, resetting stackoverflow ...
If you want to implement IDontGiveAShitComparator , it must return 0 all the time. Everything that depends on the comparator should be able to handle this.
What order results are still consistent with implementation. If it stores items in a FIFO or LIFO list, they are likely. If it is stored in a balanced tree, it will probably add elements always on one side, which will lead to a rebalancing of the tree, which will largely lead to a mixture of everything.
Perhaps it uses something based on hashes, in which case all elements with the same priority can come out ordered by their hash values.
source share