我有一组以 .xml 或 .gxml 结尾的文件名。我将每个元素放入另一个数组中。我需要确保不添加两次相同的文件名。
所以真正的问题是如何确保相同的元素不会两次添加到数组中?
使用Set
代替数组进行处理,以确保它不会出现两次
Set<String> fileNames = new HashSet<String>();
fileNames.add("1.txt");
fileNames.add("2.txt");
// not necessarily in that order with HashSet
System.out.println(fileNames); //[1.txt,2.txt]
fileNames.add("1.txt");// it will not add this one
System.out.println(fileNames); //[1.txt,2.txt]
每次添加项目时循环遍历数组,然后比较两者。如果它们相同,则不要添加新的。
for (int i = 0; i < array.length; i++)
if (object = array[i]) {
//DONT ADD THE OBJECT HERE
else {
//add the object
}
}
使用一套是最好的选择。另一种方法是使用 HashMap,文件名作为键,文件对象作为值。
HashMap<String,File> fileMap = new HashMap<String,File> ();
if (fileMap.get("fileName")==null)
fileMap.put("fileName",file)