-3

我不知道如何使用 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代表什么?谁能解释一下它的逻辑流程?谢谢!

4

2 回答 2

0

您可以使用 Collections.sort(data) 进行排序..

于 2013-10-19T15:28:24.063 回答
-1

j是什么意思

j是一个迭代器——它可以帮助你“知道”当前正在处理哪个元素。

最后一个 data.set 代表什么?

在特定位置data.set()为 ArrayList 设置新值data- 因此它将根据排序顺序保存信息。
3行:

    MedicalHistory m = data.get(j);
    data.set(j , data.get(i));
    data.set(i, m);

基本上是将索引中 ArrayList 中的i数据与 index 中的数据交换j


作为旁注,您可以使用Collections.sort()ArrayList.

于 2013-10-19T15:31:01.623 回答