保存Java ArrayList上文件夹的更改

保存Java ArrayList上文件夹的更改,java,arraylist,compare,compareto,Java,Arraylist,Compare,Compareto,我正在尝试一个监视目录变化的程序。该计划必须说明: 如果文件已被删除 如果文件被修改了 如果文件是新的 为此,我使用了两个ArrayList,在第一个ArrayList(initiallist)中,我保存了一个文件路径的内容。然后我停顿一下。用户可以从文件路径中更改某些内容,如插入新文件、删除其他文件或修改。当我按键时,我会再次将文件路径的内容保存在第二个ArrayList中 然后我比较了这些项目,这里是问题所在。 我怎么能与之相比呢 我用的是: for(int i=0; i<initia

我正在尝试一个监视目录变化的程序。该计划必须说明:

  • 如果文件已被删除
  • 如果文件被修改了
  • 如果文件是新的
  • 为此,我使用了两个ArrayList,在第一个ArrayList(initiallist)中,我保存了一个文件路径的内容。然后我停顿一下。用户可以从文件路径中更改某些内容,如插入新文件、删除其他文件或修改。当我按键时,我会再次将文件路径的内容保存在第二个ArrayList中

    然后我比较了这些项目,这里是问题所在。 我怎么能与之相比呢

    我用的是:

    for(int i=0; i<initiallist.size(); i++){
            for(int j=0; j<finallist.size(); j++){
                int compname = initiallist.get(i).getName().compareTo(finallist.get(j).getName());
                //If name is the same
                if(compname==0){
                    //If modify date and length is the same
                    if(initiallist.get(i).getLength()==finallist.get(i).getLength() && initiallist.get(i).getDate()==finallist.get(i).getDate()){
                        System.out.println("The file: "+initiallist.get(i).getName()+ " --> wasn't modified." );
                        break;
                    }else{
                        System.out.println("The file: "+initiallist.get(i).getName()+ " --> was modified." );
                    }
                }else if(compname!=0){
    
                }else{
    
                }
            }
        }
    

    for(int i=0;i的==比较仅适用于基元类型。为了比较对象,例如日期对象,必须使用equals()或compareTo()

    ==比较两个对象的地址,而不是对象的实际值

    if(date1.equals(date2))
        //do something
    


    ==比较仅适用于基本类型。若要比较对象,例如日期对象,必须使用等于()或compareTo()

    ==比较两个对象的地址,而不是对象的实际值

    if(date1.equals(date2))
        //do something
    


    要在java中比较对象,请使用.equals()方法而不是“==”运算符

    改变

    initiallist.get(i).getDate()==finallist.get(i).getDate()
    


    要在java中比较对象,请使用.equals()方法而不是“==”运算符

    改变

    initiallist.get(i).getDate()==finallist.get(i).getDate()
    


    如果您使用的是Java7,那么还可以使用内置支持来监视文件系统


    它将为您节省大量额外的工作。

    如果您使用的是Java 7,还可以使用内置支持来监视文件系统


    这将为您节省大量额外的工作。

    列表2中但不在列表1中的每个文件都是新的,列表1中但不在列表2中的每个文件都被删除了;)请看这里:列表2中但不在列表1中的每个文件都是新的,列表1中但不在列表2中的每个文件都被删除了;)看看这里:是的,我试过Monitor文件系统,但是,我正在用ArrayList做一些练习,用ArrayList进行尝试非常有趣。谢谢你提供的信息:)是的,我试过监视器文件系统,但是,我正在用ArrayList做一些练习,用ArrayList尝试它非常有趣。谢谢你提供的信息:)