Да, вы можете (и должны) использовать Collections.sort ().Этот способ сортировки уже оптимизирован и, вероятно, всегда будет работать быстрее, чем реализация, которую вы, вероятно, напишите сами.
Однако ваш код в настоящее время не применяется к Collections.sort ().Для этого объекты, которые вы помещаете в свой список, должны иметь поля «данные» и «вероятность».
Вот краткий пример:
public class DataProbability implements Comparable<DataProbability> {
private int data;
private double probability;
public int getData() {
return data;
}
public double getProbability() {
return probability;
}
public int compareTo(DataProbability pProb) {
return Double.compare(getProbability(), pProb.getProbability());
}
}
// Later, with your list
List<DataProbability> lDataList = new ArrayList<DataProbability>();
// Add some elements
Collections.sort(lDataList);
При сортировке списка выесть 2 варианта:
- Убедитесь, что сортируемые объекты реализуют интерфейс Comparable (это то, что я только что использовал
- Или вы также можете указать Comparator для использования при вызовеCollections.sort ()