(final boolean useKeys, final boolean reverse,
final boolean stable)
| 723 | |
| 724 | |
| 725 | protected void sortImpl(final boolean useKeys, final boolean reverse, |
| 726 | final boolean stable) { |
| 727 | Sort s = new Sort() { |
| 728 | @Override |
| 729 | public int size() { |
| 730 | return count; |
| 731 | } |
| 732 | |
| 733 | @Override |
| 734 | public int compare(int a, int b) { |
| 735 | int diff = 0; |
| 736 | if (useKeys) { |
| 737 | diff = keys[a].compareToIgnoreCase(keys[b]); |
| 738 | if (diff == 0) { |
| 739 | diff = values[a] - values[b]; |
| 740 | } |
| 741 | } else { // sort values |
| 742 | diff = values[a] - values[b]; |
| 743 | if (diff == 0 && stable) { |
| 744 | diff = keys[a].compareToIgnoreCase(keys[b]); |
| 745 | } |
| 746 | } |
| 747 | return reverse ? -diff : diff; |
| 748 | } |
| 749 | |
| 750 | @Override |
| 751 | public void swap(int a, int b) { |
| 752 | IntDict.this.swap(a, b); |
| 753 | } |
| 754 | }; |
| 755 | s.run(); |
| 756 | |
| 757 | // Set the indices after sort/swaps (performance fix 160411) |
| 758 | resetIndices(); |
| 759 | } |
| 760 | |
| 761 | |
| 762 | /** |
no test coverage detected