我不知道該怎麼辦的排序與ArrayList中,我有一個醫學史上的ArrayList整理日期的樣本代碼:排序在Java中
........
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(變量在這裏)方法或使用自定義對象的比較器 –
看起來像一個有點狡猾的泡沫排序,它具有平均情況二次複雜性(即它不是很好)。最後一個'data.set'將第i個項目設置爲第j個項目的前一個值(在覆蓋它之前)。見例如http://en.wikipedia.org/wiki/Bubble_sort –