Deleting duplicate lines in a file using Java

后端 未结 14 596
予麋鹿
予麋鹿 2020-12-14 01:39

As part of a project I\'m working on, I\'d like to clean up a file I generate of duplicate line entries. These duplicates often won\'t occur near each other, however. I came

14条回答
  •  星月不相逢
    2020-12-14 02:19

    Something like this, perhaps:

    BufferedReader in = ...;
    Set lines = new LinkedHashSet();
    for (String line; (line = in.readLine()) != null;)
        lines.add(line); // does nothing if duplicate is already added
    PrintWriter out = ...;
    for (String line : lines)
        out.println(line);
    

    LinkedHashSet keeps the insertion order, as opposed to HashSet which (while being slightly faster for lookup/insert) will reorder all lines.

提交回复
热议问题