1

現在、私は単に単語を辞書に挿入し(ArrayList<String>)、次に次のように辞書を並べ替えています。

dictionary.add(newWord);
Collections.sort(dictionary, new Comparator<String>(){
    public int compare(String s1, String s2) {
        return s1.compareToIgnoreCase(s2);
    }        
});

私はこの方法が本当に最高かどうかを判断しようとしています。もちろん、もう1つの方法は、辞書で正しいポイントを見つけて、そこに単語を挿入することです。問題は、辞書内でそのポイントを見つけるための効率的で信頼性の高い方法を思い付くことができなかったことです。頭の中でいくつかのアイデアが飛び交っていますが、紙にペンを置くのは本当に難しいです。

それを行う方法についてのアイデアがある場合は、大量のコードの回答を投稿しないでください。これは課題の一部なので、コードを投稿する代わりに、どのように行うかを教えていただけますか?(おそらく擬似コードで?)

ありがとうございました。

4

1 に答える 1

8

文字列コンパレータを使用して挿入時の順序を維持するため、の代わりTreeSet<String>に使用します。また、文字列コンパレータを使用しているため、nullを追加することはできません。ArrayList<String>TreeSetTreeSet

import java.util.Set;
import java.util.TreeSet;

public class Dictionary
{
    public static void main(String[] args)
    {
        Set<String> dictionary = new TreeSet<String>();
        dictionary.add("zebra");
        dictionary.add("wildebeast");
        dictionary.add("aardvark");
        System.out.println(dictionary); // will be in the correct alphabetical order.
    }
}
于 2009-11-02T01:44:39.950 に答える