如何确保相同的元素在数组中不会出现两次

时间:2013-01-13 02:39:45

标签: java

我有一个以.xml或.gxml结尾的文件名数组。 我将每个元素放入另一个数组中。 我需要确保不会添加两次相同的文件名。

所以真正的问题是如何确保相同的元素不会两次添加到数组中?

3 个答案:

答案 0 :(得分:9)

使用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]

答案 1 :(得分:1)

每次添加项目时循环遍历数组,并比较两者。如果它们相同,请不要添加新的。

    for (int i = 0; i < array.length; i++)

    if (object = array[i]) {
       //DONT ADD THE OBJECT HERE
    else {
        //add the object
    }

}

答案 2 :(得分:0)

使用套装是最佳选择。 另一种方法是使用带文件名的HashMap作为键,文件对象作为值。

HashMap<String,File> fileMap = new HashMap<String,File> ();

if (fileMap.get("fileName")==null)
fileMap.put("fileName",file)