3

如何让树集按字母顺序排序?并删除重复项......这让我疯了一天。也许我需要睡一觉。。

public static void main(String[] args) {
        String fileName = args[0];
        String words;
        Scanner s = null;
        Iterator itr;

        try {
            s = new Scanner(new BufferedReader(new FileReader(fileName)));
                while (s.hasNext()) {
                    words = s.next();

                    TreeSet<String> ts = new TreeSet<String>();
                    ts.add(words);

                    System.out.println(ts);
                }
            } catch (FileNotFoundException fnfe) {
            System.exit(0);
        } finally {
               if (s != null) {
                   s.close();
                }
            }
    }        
4

1 回答 1

6

TreeSet将集合保存在按自然顺序自动排序的树结构中。每个实现Comparable接口的类都会被排序。String 类Comparable已经实现了该接口,因此您无需对它进行任何排序,只需将其添加到TreeSet.

hashCode()如果和equals()方法按照应有的方式实现,则集合不能包含重复项。

编辑:TreeSet<String> ts = new TreeSet<String>();位于while()循环范围内。您在每个循环都对其进行初始化,并丢失前一个循环中的数据。在循环之外声明它并且不要使用Collection.sort()

于 2013-03-19T20:05:40.893 回答