KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm developing an Android app (Android 1.6), but this is probably a more general Java question. I have an ArrayList of about 10,000 objects the objects contain 3 strings (firstName, middleName, lastName). The user is presented with a "search box" on android where they can search for a particular "object" by typing in part of the name. I have a class (which I call Filterer) that searches through the list of 10,000 for matching objects and then returns them as a "sublist". The search is a little bit SLOW (especially on an Android handset) and I'm sure I'm not doing the search/filtering in the most efficient manner possible. Does anyone have any suggestions on how to speed up my search? My code is below. One possibility to to search against a secondary "masterList" that already has every piece of information in lowercase and concatenated…but there may be additional ways to improve this search that would also help. 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); } } }
Tags (comma-separated)
Save Edits
Cancel