Java搜索文本文件

4
我制作了一个电话账单系统,它可以输入电话号码、通话日期和通话时长,并将其保存到文本文件中。但是我无法在文本文件中搜索电话号码。以下是我的代码: 点击此处

1
看起来你可以读取文件。因此,请执行该操作,构建一个调用对象列表,并将它们放入电话号码到呼叫列表的映射中。然后查找/搜索该映射以获取号码。 - Thomas
3个回答

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) {
}

to:

   static List<Phone> readList(final String fileName) {
   }

尽可能避免使用输出参数


for (Phone Phone, phoneList); 这一行出现了错误,提示需要一个分号';',尽管它已经有了。 - Abu Zubayr Ibn Mohamed
抱歉,我使用不同的foreach循环语法(这是Qt语法),我现在已经更新了答案,您可以使用foreach循环或普通循环。for(int i = 0; i <phoneList.size(); i ++){ /在此处编写您的代码/} - Wajdy Essam

2

2

首先执行Collections.sort(List list);

然后执行Collections.binarySearch(List list, Object key); 这样可以高效地进行搜索。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接