代码之家  ›  专栏  ›  技术社区  ›  James

在字典中正确位置插入单词的最快方法

  •  1
  • James  · 技术社区  · 15 年前

    目前,我只是把这个词插入字典( ArrayList<String> )然后像这样对字典排序:

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

    我想知道这种方法是否真的是最好的。当然,另一种方法是在字典中找到正确的点,然后在那里插入单词。问题是,我还没有找到一种有效/可靠的方法在字典中找到这一点。我脑子里有一些想法,但把笔放到纸上真的很难。

    如果你知道如何做,请不要张贴任何大规模的代码答案。这是任务的一部分,所以你能告诉我你是怎么做的而不是发布代码的吗?(可能是伪代码?)

    谢谢您。

    1 回复  |  直到 15 年前
        1
  •  8
  •   Esteban Küber    15 年前

    我会用 TreeSet<String> 而不是 ArrayList<String> ,因为 TreeSet 使用字符串比较器在插入时保持顺序。和 有序树 不允许添加空值,因为它使用的是字符串比较器。

    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.
        }
    }