我正在开发一个
Android应用程序(
Android 1.6),但这可能是一个更通用的Java问题.
我有一个大约10,000个对象的ArrayList
对象包含3个字符串(firstName,middleName,lastName).
用户在Android上会显示一个“搜索框”,可以通过输入部分名称来搜索特定的“对象”.
我有一个类(我称之为Filterer),搜索10,000个匹配对象的列表,然后将其作为“子列表”返回.
搜索有点慢(特别是在Android手机上),我相信我没有以最有效的方式进行搜索/过滤.
有没有人有什么建议如何加快我的搜索?我的代码如下搜索已经具有小写和连接的每一条信息的次要“masterList”的一种可能性,但可能还有其他方法可以改进此搜索,这也将有所帮助.
TIA!
public void filterNames() { this.filteredList.clear(); String sv = this.searchString.toString.trim().toLowerCase(); // search value for (int i = 0; i < this.masterList.size(); i++) { MyObject d = this.masterList.get(i); String fn = d.getFirstName().toString().toLowerCase(); String mn = d.getMiddleName().toString().toLowerCase(); String ln = d.getLastName().toString().toLowerCase(); if (fn.indexOf(sv) >= 0 || md.indexOf(sv) >= 0 || ln.indexOf(sv) >= 0) { this.currentList.add(d); } } }