我对 ArrayList(上述代码中的文件)有疑问。此数组列表由位于 sd 中的文件组成。问题是我可以有重复项(相同的图像,但进入 sd 的路径不同,因此文件名相同但路径不同)并且我想删除它们。所以我使用这段代码:
ArrayList<File> removedDuplicates = new ArrayList<File>();
for (int i = 0; i < File.size(); i++) {
if (!removedDuplicates.contains(File.get(i))) {
removedDuplicates.add(File.get(i));
}
}
但它不起作用,我猜是因为文件列表的 contains() 会查看文件路径而不是文件名。这是真的吗?我该如何解决我的问题?我也尝试过:
ArrayList<File> removedDuplicates = new ArrayList<File>();
for (int i = 0; i < File.size(); i++) {
if (!removedDuplicates.contains(File.get(i).getName())) {
removedDuplicates.add(File.get(i));
}
}
但它仍然不起作用。谢谢