- Баллы
- 103
Написал такую процедуру:
Опытным путем установил, что village[] и distance[] успешно отсортированы по возрастанию. Однако на выходе получаю таблицу в прежнем виде. В чём дело?
Java:
private Map<String, Integer> sortUp(Map<String, Integer> villagesUnsorted) {
int size = villagesUnsorted.size();
String[] village = new String[size];
int[] distance = new int[size];
int i = 0;
for (Map.Entry<String, Integer> mapEntry : villagesUnsorted.entrySet()) {
village[i] = mapEntry.getKey();
distance[i] = mapEntry.getValue();
i++;
}
for(i = distance.length - 1 ; i > 0 ; i--){
for(int j = 0 ; j < i ; j++){
if( distance[j] > distance[j+1]){
int tmp = distance[j]; String stmp = village[j];
distance[j] = distance[j + 1]; village[j] = village [j+1];
distance[j + 1] = tmp; village[j + 1] = stmp;
}
}
}
Map<String, Integer> sorted = new HashMap<String, Integer>();
for(int j = 0; j < size; j++){
sorted.put(village[j], distance[j]);
}
return sorted;
}
Опытным путем установил, что village[] и distance[] успешно отсортированы по возрастанию. Однако на выходе получаю таблицу в прежнем виде. В чём дело?
