月亮的太陽

          小乖的BLOG
          posts - 114, comments - 41, trackbacks - 0, articles - 27
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          得到文件夾的文件列表;
          先定義一個類
          CODE:

          class SortFile {
              long size;
              long date;
              String name;
              public SortFile(String name, long date, long size) {
                  this.name = name;
                  this.date = date;
                  this.size = size;
              }

              public static SortFile[] sort(SortFile[] src, String mark, boolean rule) {
                  if (rule) {//升序
                      for (int i = src.length; i > 1; i--) {
                          for (int j = 0; j < i - 1; j++) {
                              boolean change = false;
                              if (mark.equals("name")) {
                                  if (src[j].name.compareTo(src[j + 1].name) > 0)
                                      change = true;
                              } else if (mark.equals("date")) {
                                  if (src[j].date > src[j + 1].date)
                                      change = true;
                              } else {
                                  if (src[j].size > src[j + 1].size)
                                      change = true;

                              }
                              if (change) {
                                  SortFile temp = src[j];
                                  src[j] = src[j + 1];
                                  src[j + 1] = temp;
                              }
                          }
                      }
                  } else {
                      //降序只要把>改成<
                  }
                  return src;
              }
          }


          這樣得到一個目錄下文件后:
          CODE:

          ArrayList al = new ArrayList();
          File f = new File(dir);
          String[] names = f.list();
          for (int i = 0; i < names.length; i++) {
              File fs = new File(f, names[i]);
              SortFile sf = new SortFile(name[i], fs.length(), fs.lastModified);
              al.add(sf);
          }



          最后把al轉換成數組:

          SortFile[] sfSrc = new SortFile[al.size()];
          for(i=0;i<al.size();i++)
          sfSrc[i] = (SortFile) al.get(i);

          這樣你要按什么排傳進去名稱,升降傳boolean
          比如\
          SortFile[] forName = SortFile.sort(sfSrc,"name",true);

          把得到的ArrayList傳入返回排序后的al呢,因為這時多次遍歷,只有數組最快.把al轉化成數組只是多用了1個時間單位的開銷的話,下面用數組來排充就節少了10000個時間單位.
          主站蜘蛛池模板: 滨海县| 高阳县| 沭阳县| 遂溪县| 招远市| 广灵县| 仙桃市| 宜宾市| 青岛市| 枣庄市| 岗巴县| 积石山| 秦皇岛市| 达拉特旗| 崇义县| 郓城县| 阿拉善右旗| 毕节市| 武隆县| 上蔡县| 龙岩市| 彰武县| 水富县| 荣成市| 徐州市| 乌苏市| 永修县| 白银市| 拉萨市| 崇明县| 丰都县| 南和县| 宁阳县| 阳春市| 大厂| 江华| 嵊州市| 贺州市| 垫江县| 岳池县| 邵东县|