java如何使用原始元素删除ArrayList中的重复值
假设我有一个ArrayList,它有要处理的特定文件的路径。但只有当文件夹中只有一个文件时,才能处理该文件。我的意思是:
我的ArrayList
List<String> pathsToTheFile = new ArrayList<>();
有
C:\123\456\NameOfUniqueFolder0
C:\123\456\NameOfUniqueFolder1
C:\123\456\NameOfUniqueFolder2
C:\123\456\NameOfUniqueFolder3
C:\123\456\NameOfUniqueFolder4
假设我的第五个元素是
C:\123\456\NameOfUniqueFolder0
很明显,它是我的0元素的副本,因为这个文件夹中的文件根本不应该被处理C:\123\456\NameOfUniqueFolder0应从列表中删除。我不能在这里使用集合,因为它将“删除”副本,但文件夹的一条路径仍将存在,其中的文件将被处理
# 1 楼答案
你可以做下面这样的事情。它会给你路径图和它的出现次数。例如:
{C:\123\456\NameOfUniqueFolder0=2, C:\123\456\NameOfUniqueFolder1=1}
在此之后,只能处理出现次数等于1的路径
# 2 楼答案
你可以试试这个代码
# 3 楼答案
在这里使用hashmap可能有意义。密钥可以是文件路径,如果密钥存在,则该值将是文件出现的次数。比如:
现在,当新路径出现时,增加其计数器:
最后,您可以迭代该映射,并检查每个键的计数器值。然后,您将只处理只发生过一次的文件: