比较两个列表以计算差异-Android/Java

比较两个列表以计算差异-Android/Java,java,android,android-cursor,Java,Android,Android Cursor,我有两个列表-一个返回所有文件夹的列表,另一个返回最近文件夹的列表。我想做的是相互比较每个列表——如果找到匹配项:显示祝酒词 我目前的代码如下: boolean currentFolderFound = false; if (mAllFolderListCursor != null) { final String folderName = mSelectedFolderUri.toString();

我有两个列表-一个返回所有文件夹的列表,另一个返回最近文件夹的列表。我想做的是相互比较每个列表——如果找到匹配项:显示祝酒词

我目前的代码如下:

    boolean currentFolderFound = false;
            if (mAllFolderListCursor != null) {
                final String folderName = mSelectedFolderUri.toString();
                if (mAllFolderListCursor.moveToFirst()) {
                    do {
                        final Folder f = mAllFolderListCursor.getModel();
                        if (!isFolderTypeExcluded(f)) {
                            if (f.folderUri.equals(mRecentFolders)) {
                                Toast.makeText(getApplicationContext(), "MATCH FOUND",
                                           Toast.LENGTH_LONG).show();
                            }
                        }
                    } while (!currentFolderFound && mAllFolderListCursor.moveToNext());
                }
}
我相信我对这行代码的编码是错误的:if
(f.folderUri.equals(mRecentFolders)){
,我想知道如何改进它以提供我想要的结果

提前感谢,


如果对象实际上相等,Christopher

equals将返回true,但在您的情况下,它们不是。您应该使用compareTo方法进行简单的字符串比较

String f1 = folder1.folderUri.toString();
String f2 = folder2.folderUri.toString();
if (f1.compareTo(f2) == 0) { // Do what needs to be done}

您将需要类似于
if(mRecentFolders.contains(f.folderUri))的内容
这可能有效,也可能无效,这取决于您在那里比较的内容的类型。它实际上是一个RecentFolderList:private final RecentFolderList mRecentFolders;因此您应该针对mAllFolderList中的每个文件夹测试此列表中的每个文件夹。如果我了解您想要做什么,我的答案只是关于文件夹比较。。。