辞書に正しい位置の単語を挿入するための最速の方法
-
11-09-2019 - |
質問
現在、私は単純に辞書(ArrayList<String>
)に単語を挿入して、そのように辞書を並べ替えています:
dictionary.add(newWord);
Collections.sort(dictionary, new Comparator<String>(){
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
私はこの方法が本当に最善であるかどうかを判断しようとしています。他の方法は、もちろん、辞書内の正しいポイントを検索し、そこに単語を挿入することです。問題は、私は辞書の中にそのポイントを見つけるための効率的/信頼性の高い方法を思い付くことができていない、です。私は私の頭の中を飛んでいくつかのアイデアを持っているが、それは紙にペンを置くことは本当に難しいです。
あなたがそれを行う方法のアイデアを持っている場合は、、任意の大規模なコードの答えを投稿しないでください。これは、割り当ての一部であり、その代わりにコードを掲示するのは、あなたがそれを行うだろうか、私を歩くことができますか? (多分擬似コードでは?)
ありがとうございます。
解決
TreeSet<String>
は、あなたが挿入すると秩序を維持するために、文字列比較を使用するため、私は、代わりにArrayList<String>
のTreeSet
を使用します。それは文字列の比較器を使用しているためとTreeSet
は、あなたがnullを追加することはできません。
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.
}
}
所属していません StackOverflow