|
本帖最后由 leelight 于 2015-4-19 11:40 编辑
- public class ArrayIndexComparator implements Comparator<Integer>
- {
- private final int[] array;
- public ArrayIndexComparator(int[] array)
- {
- this.array = array;
- }
- public Integer[] createIndexArray()
- {
- Integer[] indexes = new Integer[array.length];
- for (int i = 0; i < array.length; i++)
- {
- indexes[i] = i;
- }
- return indexes;
- }
- @Override
- public int compare(Integer index1, Integer index2)
- {
- return array[index1]>array[index2];
- }
- }
- public class ArrayIndexComparatorDesc implements Comparator<Integer>
- {
- private final int[] array;
- public ArrayIndexComparator(int[] array)
- {
- this.array = array;
- }
- public Integer[] createIndexArray()
- {
- Integer[] indexes = new Integer[array.length];
- for (int i = 0; i < array.length; i++)
- {
- indexes[i] = i; // Autoboxing
- }
- return indexes;
- }
- @Override
- public int compare(Integer index1, Integer index2)
- {
- return array[index2]>array[index1];
- }
- }
复制代码 升序:
- int[] countries = { 5, 2, 3, 8, 19};
- ArrayIndexComparator comparator = new ArrayIndexComparator(countries);
- Integer[] indexes = comparator.createIndexArray();
- Arrays.sort(indexes, comparator);
- for (int n = 0; n < indexes.length; n++) {
- System.out.println(indexes[n]);
- }
复制代码 降序:
- int[] countries = { 5, 2, 3, 8, 19};
- ArrayIndexComparator comparator = new ArrayIndexComparatorDesc(countries);
- Integer[] indexes = comparator.createIndexArray();
- Arrays.sort(indexes, comparator);
- for (int n = 0; n < indexes.length; n++) {
- System.out.println(indexes[n]);
- }
复制代码 未经实际运行测试,不承担任何可能导致的不良后果 |
|