0

FileItem リストをソートするにはどうすればよいですか?

私は次のコードを持っています:

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

このリストには常に 2 つのファイルを含めることができます (PDF と XML が 1 つずつあり、ファイル名は同じで、拡張子のみが異なります)。アイテムが最初にpdf、次にXMLになる必要がありますが、Windowsがファイルをソートするデフォルトの方法は名前順です。このソートが変更された場合、アイテムはXMLの次にPDFになります。

例:

名前順の Windows の場合、項目は次のようになります。

ここに画像の説明を入力

//The expected sort
items.get(0).getName(); //This should be equals: PAX147896.pdf
items.get(1).getName(); //This should be equals: PAX147896.xml

しかし、私がこのような他のものを並べ替えると:

ここに画像の説明を入力

//The unexpected sort
items.get(0).getName(); // PAX147896.xml
items.get(1).getName(); // PAX147896.pdf

誰かがitems.sort()メソッドの例を教えてくれますか? Collectionが必要なのはわかっていますが、その使用方法が本当にわかりません....

どんな助けでも本当に感謝しています。

4

2 に答える 2

2

以下のように Collections API のソートを使用してソートしてみてください。

Collections.sort(files, NameFileComparator.NAME_COMPARATOR);
于 2016-10-24T18:05:55.500 に答える