How to search for a string in an ArrayList in java?
Do Check My Video On Utility Classes in java
Collection class defines the following binary search method
1)public static int binarySearch(List l,Object target):
if the list is sorted acc. default natural sorting order then we have to use this method
2)public static int binarySearch(List l,Object target,Comparator c):
we have to use this method if the list is sorted acc. to customized sorting
Conclusions:1)above method internally use binary search algorithm
2)Succesful search returns index
3)Unsuccesful search returns insertion point
4)insertion pt. is the location where we can place target elementin the sorted list
5)before calling the method the list Should be sorted otherwise we will gwt
unpredictable result
Note:if the list is sorted acc. to comparator object then at the time of
search we have to pass same comparator object
Example:
import java.util.Collections;
import java.util.Comparator;
import java.util.ArrayList;
public class Test{
public static void main(String[] args) {
ArrayList<String> l = new ArrayList<>();
l.add("K");
l.add("N");
l.add("M");
l.add("J");
l.add("L");
// l.add(new Integer(10));//CCE
//l.add(null);//NPE
System.out.println("Before Sorting: "+l);//[K, N, M, J, L]
Collections.sort(l);
System.out.println("After Sorting: "+l);//[J, K, L, M, N]
System.out.println(Collections.binarySearch(l,"M"));//3
System.out.println(Collections.binarySearch(l,"O"));//-6
System.out.println(Collections.binarySearch(l,"A"));//-1
}
}
o/p:
-1 -2 -3 -4 -5
J K L M N
1 2 3 4 5
Comments
Post a Comment