【发布时间】:2013-10-28 08:38:30
【问题描述】:
我不知道如何使用 ArrayList 进行排序,我有在病历数组列表中排序日期的示例代码:
........
private List<MedicalHistory> sortByDate(List<MedicalHistory> data) {
for (int i = 0; i < data.size(); i++) {
for (int j = i; j < data.size(); j++) {
if (data.get(i).getDate().compareTo(data.get(j).getDate()) > 0) {
MedicalHistory m = data.get(j);
data.set(j , data.get(i));
data.set(i, m);
.......
所以首先,我不知道j是什么意思,其次,最后一个data.set代表什么?谁能解释一下它的逻辑流程?谢谢!
【问题讨论】:
-
你有 Arrays.sort(variable here) 方法或使用自定义对象的比较器
-
看起来有点像冒泡排序,它具有平均情况的二次复杂度(即它不是很好)。最后一个
data.set将第 i 个项目设置为第 j 个项目的前一个值(在覆盖之前)。参见例如en.wikipedia.org/wiki/Bubble_sort