(final boolean useKeys, final boolean reverse,
final boolean stable)
| 695 | |
| 696 | |
| 697 | protected void sortImpl(final boolean useKeys, final boolean reverse, |
| 698 | final boolean stable) { |
| 699 | Sort s = new Sort() { |
| 700 | @Override |
| 701 | public int size() { |
| 702 | return count; |
| 703 | } |
| 704 | |
| 705 | @Override |
| 706 | public int compare(int a, int b) { |
| 707 | int diff = 0; |
| 708 | if (useKeys) { |
| 709 | diff = keys[a].compareToIgnoreCase(keys[b]); |
| 710 | if (diff == 0) { |
| 711 | diff = values[a] - values[b]; |
| 712 | } |
| 713 | } else { // sort values |
| 714 | diff = values[a] - values[b]; |
| 715 | if (diff == 0 && stable) { |
| 716 | diff = keys[a].compareToIgnoreCase(keys[b]); |
| 717 | } |
| 718 | } |
| 719 | return reverse ? -diff : diff; |
| 720 | } |
| 721 | |
| 722 | @Override |
| 723 | public void swap(int a, int b) { |
| 724 | IntDict.this.swap(a, b); |
| 725 | } |
| 726 | }; |
| 727 | s.run(); |
| 728 | |
| 729 | // Set the indices after sort/swaps (performance fix 160411) |
| 730 | resetIndices(); |
| 731 | } |
| 732 | |
| 733 | |
| 734 | /** |
no test coverage detected