如何使用二进制搜索添加到arraylist和查找? PhoneBook ArrayList类

时间:2015-03-24 22:23:53

标签: java arraylist

我必须做一个PhoneBook课程。除了两种方法,我做了很多。我需要一些帮助来解决这些问题。 1.存在PhoneEntry类。 = 一个。编写一个存储PhoneEntry对象的PhoneBook类。添加以下方法。 III。 addInOrder(PhoneEntry a)这是插入排序 v.lookup(String name) - 返回与name关联的电话号码。使用二进制搜索

我不知道如何做到这两点。我有一些addInOrder完成但没有查找。这就是我到目前为止所做的:

public void addInOrder(PhoneEntry a) {
    for (int outer = 1; outer < book.size(); outer++) {
        int position = outer;
        String key = (a.get(position);
        // shift larger values to right
        while (position > 0 && a.get(position - 1).compareTo(key) > 0) {
            (a.get(position)).equals(a.get(position - 1));
            position--;
        }

        a.get(position).equals(key);
    }
}

public String lookUp(String name) {

}

1 个答案:

答案 0 :(得分:0)

addInOrder

只需在条目末尾添加,然后排序性能是否相关或您的元素很少(您可以使用Collections.sort轻松排序)。更快的方法是保持条目从头开始排序,以便更快地找到添加位置。

lookup

迭代所有条目,检查每个名称并返回电话,如果相等。更快的方法是保留一个Map,其中键是名称。