我正在用Java創建一個電話簿API。我的電話簿中的每個名稱都映射到一組電話號碼&地址。我想創建一個搜索功能,可以使用搜索參數作爲名稱或電話號碼本身來搜索電話簿中的條目。使用Map來實現高效的搜索過程-java,
我的做法一直是我的所有條目添加到:
Map <String, PhoneNumber> book = new HashMap <String,PhoneNumber>();
book.put("Name1",new PhoneNumber(new Integer(12345),new Integer(123456));
book.get("Name1");
// PhoneNumber is my class which can have different types of phone numbers
我想這兩個是關鍵,也是由值名稱進行搜索。我不能這樣做,使用HashMap
。有沒有更好的方法來實現高效的搜索過程?
名稱是否是唯一的? – 2010-09-26 02:52:38
不要將電話號碼錶示爲整數。你不能用一個整數表示前導零或#。 – 2010-09-26 08:19:56
好趕上@thorbjorn。此外,電話號碼並不是真正的數字 - 在電話號碼上做數學是沒有意義的。因此,即使它看起來像一個,它也不是一個數字。所以我們在這裏看到的可能是一個通用的'lookup'類,和一個'電話簿'子類,它應用'該鍵必須是數字字符串'規則。 – 2010-09-26 12:21:41