错误查找和删除java中的重复项

时间:2015-11-06 03:22:09

标签: java methods duplicates

我正在尝试从输入文件中删除重复的名称,并仅打印出所有名称一次。这是我的代码:

public static void main(String[] args) throws IOException {
    ArrayList<String> fn = new ArrayList<String>();
    ArrayList<String> ln = new ArrayList<String>();
    ArrayList<String> names = new ArrayList<String>();
    getNames(fn,ln);

  System.out.println("\n******* All Unique Names*********");
    remove(names);
}
public static int find(String s, ArrayList<String> a) {
    for (int i = 0; i < a.size(); i++)
        if (a.get(i).equals(s))
            return i;        
    return -1;
}
public static int remove(ArrayList<String>n){
    //int found = find(names, n);
         int index = 0;
    while (index < n.size() - 1) {
        if (n.get(index).equals(n.get(index + 1))) {
            n.remove(index + 1);
        } else {
            index++;
        }
    }
    System.out.println(n);
    return index;
 }
}

如何打印没有重复的名称?

3 个答案:

答案 0 :(得分:1)

您可以尝试使用HashSet而不是ArrayList。

将所有名称保存在HashSet中,并在完成保存后将其打印出来。这不会给你重复的名字。

答案 1 :(得分:1)

试试这个

$sisa_tempo_bro

答案 2 :(得分:0)

以下是如何使用Set

删除重复名称的示例
         ArrayList<String> names = new ArrayList<String>();
         names.add("abc");
         names.add("bcd");
         names.add("abc");
         System.out.println("Names with duplicate : ");
         System.out.println(names);

         Set<String> uniqueNames = new HashSet<String>(names);
         System.out.println("Names without duplicate : ");
         System.out.println(uniqueNames);

请试试这个。 输出:

Names with duplicate : 
[abc, bcd, abc]
Names without duplicate : 
[abc, bcd]