先上代码
public static List<Map> sort(float arr[], int low, int hight, List<Map> list) {
int i = low;
int j = hight;
//支点
float pivot = arr[(low + hight) / 2];
//只要没有交替就一直扫描
while (i <= j) {
while (pivot > arr[i])
i++;
while (pivot < arr[j])
j--;
if (i <= j) {
float temp = arr[j];
arr[i] = arr[j];
arr[j] = temp;
Collections.swap(list, i, j);
i++;
j--;
}
}
if (low < j)
sort(arr, low, j, list);
if (i < hight)
sort(arr, i, hight, list);
return list;
}
这个是一个普通的数组快速排序,不一样的是传入了一个LIst集合。主要是Collections.swap(list, i, j);这个方法,可以将i和j下标值互换,即每次将HashMap中Value值进行排序时,value值调整位置,List值就跟着调整位置。即可完美解决。