假设我有一个对象集合:
List<String> myList = populateMyArrayList();
//Here I am having an ArrayList with 1000 elements
哪种方法更好:
1:合并排序然后二分查找
Collections.sort(myList);
int keyIndex = Collections.binarySearch(myList, key);
2:顺序搜索
for(String s : myList){
if(s.equals(key)){
return s;
}
}
根据要搜索的集合的大小,搜索方法是否应该有所不同?如果是,那么如何决定。
EDIT1:假设我必须搜索列表几次,并且列表中不会添加新元素。
EDIT2:我本可以选择 a HashSet
,但实际上我有 aList<CustomObject>
并且我可以List
根据 CustomObject 的不同属性多次搜索。equals
所以我的 CustomObject中不能有被覆盖的方法