【发布时间】:2016-10-24 16:58:51
【问题描述】:
如何对 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,文件名相同,只是扩展名改变)。我需要 items 首先是 pdf,然后是 XML,但是 Windows 对文件进行排序的默认方式是按名称,如果这种排序发生变化,items 可以是 XML,然后是 PDF .
例子:
如果是按名称命名的 Windows,则 items 应该是这样的:
//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 但我真的不知道如何使用它.. ..
任何帮助将不胜感激。
【问题讨论】:
-
你能把文件名和预期的内容贴出来
-
当然,我补充一下错误是如何引起的,这有帮助吗?
-
我不明白您在 Windows 资源管理器中选择的排序类型有何相关性。要选择集合中的元素,请使用比较器。如果您希望 pdf 位于 xml 之前,请确保您的比较器根据此标准对项目进行排序。
-
谢谢@JBNizet 我会按照你说的去检查,问候!
标签: java sorting collections fileitem