Android 比较两个ArrayList并从中删除额外的元素
如何比较两个ArrayList 我有一个sdCoverList数组和thumbnailList数组Android 比较两个ArrayList并从中删除额外的元素,android,arraylist,Android,Arraylist,如何比较两个ArrayList 我有一个sdCoverList数组和thumbnailList数组 02-04 11:05:05.210: I/System.out(4035): HASHED THUMBNAIL[-2122410790, 2043473787, 1914391068, 1785308349, 1656225630, 1527142911, 1398060192, 1268977473, 1139894754, 1010812035, 1242943301, 1113860582
02-04 11:05:05.210: I/System.out(4035): HASHED THUMBNAIL[-2122410790, 2043473787, 1914391068, 1785308349, 1656225630, 1527142911, 1398060192, 1268977473, 1139894754, 1010812035, 1242943301, 1113860582, 984777863, 855695144, 726612425, 597529706, 468446987, 339364268, 210281549]
02-04 11:05:05.210: I/System.out(4035): SD COVER LIST[-2122410790, 2043473787, 1914391068, 1785308349, 1268977473, 1656225630, 1527142911, 1139894754, 1398060192, 1010812035, 1242943301, 1113860582, 984777863, 855695144, 726612425, 597529706, 468446987, 339364268, 210281549, 717409028]
在我的sd封面列表中,我有一个额外的值要删除,但首先我必须先与thumbnailList数组进行比较。如果两者都有相同的元素,不要做任何事情,但如果有额外的元素,请将其从sd卡中删除
我的数组列表
有关sdCoverList:
// CHECK DIRECTORY BEFORE DELETING THEM
File strPath = new File(Environment.getExternalStorageDirectory() + folderName+"/Covers");
File yourDir = new File(strPath, "");
if(yourDir.length()!=0)
for (File f : yourDir.listFiles()) {
if (f.isFile())
{
String name = f.getName();
sdCoverList.add(name);
//System.out.println(sdCoverList);
}
对于Hashedthumbail
for (int a=0;a<=thumbnailList.size()-1;a++)
{
String hashed = String.valueOf(thumbnailList.get(a).hashCode());
Log.d("hashed",hashed);
hashedThumbnail.add(hashed);
}
for(int a=0;aa很好的答案是如果我已经有一个arraylist,我如何使用它的集合?@Ramkiran嗨,我已经编辑了上面的代码非常感谢你的帮助:)如果我尝试添加所有并移除所有卡在这种情况下的应用程序,我在数组中有超过50000条记录。我该怎么做??
List<String> sdCoverList = new ArrayList<String>();
sdCoverList.add("-2122410790");
sdCoverList.add("2043473787");
sdCoverList.add("717409028");
List<String> hashedThumbnail = new ArrayList<String>();
hashedThumbnail.add("-2122410790");
hashedThumbnail.add("2043473787");
System.out.println("sdCover List: " + sdCoverList);
System.out.println("hashedThumbnail List: " + hashedThumbnail);
List<String> temp = new ArrayList<String>();
temp.addAll(sdCoverList);
temp.removeAll(hashedThumbnail);
System.out.println("temp List: " + temp);
sdCoverList.removeAll(temp);
System.out.println("sdCover List: " + sdCoverList);
sdCover List: [-2122410790, 2043473787, 717409028]
hashedThumbnail List: [-2122410790, 2043473787]
temp List: [717409028]
sdCover List: [-2122410790, 2043473787]