比较两个列表以计算差异-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)){
,我想知道如何改进它以提供我想要的结果
提前感谢,
如果对象实际上相等,Christopherequals将返回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中的每个文件夹测试此列表中的每个文件夹。如果我了解您想要做什么,我的答案只是关于文件夹比较。。。