Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何对LinkedList进行排序<;FileInfo>;按姓名和日期?_Java - Fatal编程技术网

Java 如何对LinkedList进行排序<;FileInfo>;按姓名和日期?

Java 如何对LinkedList进行排序<;FileInfo>;按姓名和日期?,java,Java,我不知道如何用fileinfo对Linkedlist进行排序,下面的代码显示了“构建内容”的过程 private void ReloadScanFiles(){ 如果(gsfCurRow!=null){ ArrayList newTreeFileInfoList=新的ArrayList(); ArrayList AddTreeFileInfo=新建ArrayList(); ArrayList delTreeFileNameList=新的ArrayList(); ///////链表 LinkedL

我不知道如何用fileinfo对Linkedlist进行排序,下面的代码显示了“构建内容”的过程

private void ReloadScanFiles(){
如果(gsfCurRow!=null){
ArrayList newTreeFileInfoList=新的ArrayList();
ArrayList AddTreeFileInfo=新建ArrayList();
ArrayList delTreeFileNameList=新的ArrayList();
///////链表
LinkedList newTreeFileInfoLinkedList=新建LinkedList();
LinkedList AddTreeFileInfo LinkedList=新建LinkedList();
LinkedList delTreeFileNameLinkedList=新建LinkedList();
文件夹=新文件(gsfCurRow.DOC\u源路径);
FileFilter FileFilter=newfilefilter(){
公共布尔接受(文件){
return!file.isDirectory()&&!file.ishiden();
}
};
/*          
FilenameFilter fileFilter=newfilenamefilter(){
公共布尔接受(文件目录,字符串名称){
返回name.toLowerCase().endsWith(“.pdf”)||
name.toLowerCase().endsWith(“.jpeg”)||
name.toLowerCase().endsWith(“.jpg”)||
name.toLowerCase().endsWith(“.tiff”)||
name.toLowerCase().endsWith(“.txt”);
}
};
*/
File[]listOfFiles=folder.listFiles(fileFilter);
for(int i=0;i
您可以在下图中看到输出:

我需要根据它们的名称或日期对这些项目进行排序,我在考虑将侦听器放在两个列meno-表示名称,datum-表示日期。我如何实现这一点?如何实现
 private void ReloadScanFiles() {
        if (gsfCurRow != null) {
            ArrayList<FileInfo> newTreeFileInfoList = new ArrayList<FileInfo>();
            ArrayList<FileInfo> addTreeFileInfoList = new ArrayList<FileInfo>();
            ArrayList<String> delTreeFileNameList = new ArrayList<String>();
            /////// linked list
            LinkedList<FileInfo> newTreeFileInfoLinkedList = new LinkedList<FileInfo>();
            LinkedList<FileInfo> addTreeFileInfoLinkedList = new LinkedList<FileInfo>();
            LinkedList<String> delTreeFileNameLinkedList = new LinkedList<String>();



            File folder = new File(gsfCurRow.DOC_SOURCE_PATH);

            FileFilter fileFilter = new FileFilter() {
                public boolean accept(File file) {
                    return !file.isDirectory() && !file.isHidden();
                }
            };
/*          
            FilenameFilter fileFilter = new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.toLowerCase().endsWith(".pdf") ||
                           name.toLowerCase().endsWith(".jpeg") ||
                           name.toLowerCase().endsWith(".jpg") ||
                           name.toLowerCase().endsWith(".tiff") ||
                           name.toLowerCase().endsWith(".txt");                    
                }
            };
*/
            File[] listOfFiles = folder.listFiles(fileFilter);          

            for (int i = 0; i < listOfFiles.length; i++){
                FileInfo fileInfo = new FileInfo();

                fileInfo.Name = listOfFiles[i].getName();
                //fileInfo.Length = (long) listOfFiles[i].length();
                fileInfo.LastModified = (long) listOfFiles[i].lastModified(); //Long.parseLong("473", 10);

                //newTreeFileInfoLinkedList.add(fileInfo);
                newTreeFileInfoLinkedList.add(fileInfo);
            }


            //add new items
            for (FileInfo fileInfo: newTreeFileInfoLinkedList){ 
            //for (FileInfo fileInfo: newTreeFileInfoLinkedList){       

                boolean existsItem = false;

                if (actTreeFileInfoLinkdList != null){
                    for (FileInfo fileInfo1: actTreeFileInfoLinkdList){
                        if (fileInfo.Name.equals(fileInfo1.Name)) {

                            existsItem = true;
                            break;
                        }
                    }
                }


                if (!existsItem) {
                    //addTreeFileInfoLinkedList.add(fileInfo);
                    addTreeFileInfoLinkedList.add(fileInfo);
                }

            }



            //delete non existing items

            if (actTreeFileInfoLinkdList != null){
                for (FileInfo fileInfo: actTreeFileInfoLinkdList){
                    boolean existsItem = false;

                    for (FileInfo fileInfo1: newTreeFileInfoLinkedList){
                        if (fileInfo.Name.equals(fileInfo1.Name)) {
                            existsItem = true;
                            break;
                        }
                    }


                    if (!existsItem) {
                        //delTreeFileNameLinkedList.add(fileInfo);
                        delTreeFileNameLinkedList.add(fileInfo.Name);
                    }
                }                   
            }

            actTreeFileInfoLinkdList = newTreeFileInfoLinkedList;



            //add items to tree
            for (FileInfo fileInfo: addTreeFileInfoLinkedList){
                TreeItem item = new TreeItem(tv, SWT.NONE); 
                //item.setText(new String[] {fileInfo.Name, Long.toString(fileInfo.Length), df.format(fileInfo.LastModified)});
                item.setText(new String[] {fileInfo.Name, null, df.format(fileInfo.LastModified)});             
                fileCount ++;                       
            }


            //delete item from tree
            //update locked by
            TreeItem [] items = tv.getItems();   
            for (TreeItem item: items){
                //delete
                if (delTreeFileNameLinkedList.contains(item.getText())) {
                    if (item.getChecked()) {
                        checkedFileCount --;                    
                    }
                    fileCount --;
                    item.dispose();
                }
                //update
                if (!item.isDisposed()){
                    Integer lock_idusr = null;
                    try {
                        lock_idusr = db.FileLockedBy(gsfCurRow.DOC_SOURCE_ID, item.getText());
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }


                    if ((lock_idusr != null) && (!lock_idusr.equals(idusr))){
                        try {
                            item.setText(3, db.GetOpid(lock_idusr));
                        } catch (SQLException e) {
                            e.printStackTrace();
                        }
                        Color color = new Color(display,180, 0, 0);
                        item.setForeground(color);
                        item.setChecked(false);
                    } 
                    else{
                        item.setText(3, "");
                        Color color = new Color(display,0, 0, 0);
                        item.setForeground(color);                      
                    }
                }
            }

            //sort linked list files
            //actTreeFileInfoLinkdList




            BtnDocAssignEnabled();
            GenerateTreeStatusText();


        }
    }
Collections.sort(newTreeFileInfoLinkedList, (f1, f2) -> {
    return f1.Name.compareTo(f2.Name);
});