我已经制作了一个电话帐单系统,可以输入所谓的电话号码,通话日期和通话时长。它将它保存到文本文件中。我无法做的是在文本文件中搜索电话号码。
答案 0 :(得分:4)
只需进行线性搜索(迭代手机列表):
public static List<Phone> searchPhone(final String phoneNumber, final List<Phone> phoneList) {
List<Phone> matchedPhone = new ArrayList<Phone>();
for(Phone phone: phoneList) {
if ( phone.getphoneNumber().equals(phoneNumber) ) {
matchedPhone.add(phone);
}
}
return matchedPhone;
}
为了便于阅读,请不要将您的方法参数作为输出。这不是一个好习惯,所以你应该改变你的方法:
static void readList(List<Phone> phoneListIn) {
}
为:
static List<Phone> readList(final String fileName) {
}
应尽可能避免输出参数
答案 1 :(得分:2)
以下是我使用Google找到的一些代码的链接。
http://www.dreamincode.net/forums/topic/48905-search-inside-a-text-file/
答案 2 :(得分:2)
执行Collections.sort(List list);
然后执行Collections.binarySearch(List list, Object key).
这应该有效地进行搜索。