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 に答える