Jen*_*cht 0 java arrays search return
简而言之,这是我的困境:我以这种格式导入了一个文件,其中包含给定年份中的前2000名:
Mary, F, 2038
Anna, F, 4230
Run Code Online (Sandbox Code Playgroud)
(姓名,性别,在这一年中有多少人被命名为此).
我已经用这个数据创建了一个数组(类型字符串).现在,我必须做的是允许用户搜索名称,并返回他们最好的一年.ex:搜索"sam"
输出应该是:
"isamar 1990"
"rosamond 1910"
"sam 1900"
"samantha 1990"
"samara 2000"
Run Code Online (Sandbox Code Playgroud)
程序还有很多东西,但我只需要知道如何在数组中搜索,返回我在数组中找到的东西,然后我就完成了.
搜索数组可以像迭代它一样简单,并将每个元素与所需的术语进行比较.例如,假设您有以下模型:
public class CommonName {
public final String name;
public final int year;
public final CommonName(String name, int year) {
this.name = name;
this.year = year;
}
}
Run Code Online (Sandbox Code Playgroud)
假设您已将文件作为这些对象的数组加载,则loadedNames可以使用此String#indexOf(String)方法搜索它们:
public static CommonName[] loadedNames = /* ... */;
public static Collection<CommonName> search(String searchTerm) {
Collection<CommonName> matches = new ArrayList<CommonName>();
for (CommonName cn : loadedNames) {
if (cn.name.indexOf(searchTerm) >= 0) { matches.add(cn); }
}
return matches;
}
Run Code Online (Sandbox Code Playgroud)
当然,还有其他问题,例如区分大小写和性能(数组搜索O(n)),您可能需要解决这些问题.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |