Created
November 1, 2013 14:40
-
-
Save swanhtet1992/7266386 to your computer and use it in GitHub Desktop.
4 ways to search array in Java Read more: http://javarevisited.blogspot.com/2012/11/4-ways-to-search-object-in-java-array-example.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*1) Searching Array by converting Array to ArrayList in Java | |
ArrayList in Java has a convenient method called contains() which returns true if object passed to it are inside ArrayList. by converting an array into ArrayList in Java we can easily use this option for searching any element in Java array. | |
2) Search Java array by converting Array to HashSet | |
Just like we can leverage ArrayList's contains method we can also use HashSet contains() method which has O(1) response time for search. So if you need constant search time to find an element in array, consider converting your Array into HashSet in Java. see the code section for complete example of searching elements in Java array using HashSet's contains() method. | |
3) Searching Java Array using Arrays.binarySearch() | |
Binary Search is another faster way of searching elements in Java array but it requires array to be sorted while earlier examples of finding elements on Array can be used with both sorted and unsorted array. java.util.Arrays class provides both sort() and binarySearch() for first sorting an array and than performing binary search on it. Arrays.binarySearch() method returns >=0 if it finds elements in Array. see code section for full code example of binarySearch in Java array. | |
4) Finding element in Java array using foreach loop | |
This is plain, old, brute force way of searching elements on array in Java or any other programming language like C or C++. You iterate through array comparing each elements to input and returning true once you have matched. this is a completely linear operation and if your array is large and input is at rear end it can take long time to search array. O(n) operations are also not preferred. | |
*/ | |
import java.util.Arrays; | |
import java.util.HashSet; | |
import java.util.List; | |
import java.util.Set; | |
public class SearchTest { | |
public static void main(String args[]) { | |
//searching element on unsorted Java array | |
//searching java array using ArrayList | |
List<Integer> array = Arrays.asList(1, 3, 5, 2, 4); | |
if (array.contains(3)) { | |
System.out.println("Element found inside Java array using" + | |
"ArrayList contains() method"); | |
}; | |
Set<Integer> arraySet = new HashSet<Integer>(array); | |
if (arraySet.contains(3)) { | |
System.out.println("Element found on Java array using" + | |
"HashSet contains method"); | |
}; | |
//searching element on sorted Java array | |
//unsorted String array | |
String[] cities = new String[]{"Washington", "London", "Paris", "NewYork"}; | |
//sorting array in java | |
Arrays.sort(cities); | |
//searching on sorted array in java using Arrays binarySearch() method | |
if(Arrays.binarySearch(cities, "Paris") >=0 ){ | |
System.out.println("Element found on sorted String Java" + | |
"array using binary search"); | |
} | |
//plain old for loop for searching elements in Java array | |
String input = "London"; | |
for(String city: cities){ | |
if(city.equals(input)){ | |
System.out.println("Found elements in Java array using for loop"); | |
} | |
} | |
} | |
} | |
Output | |
Element found inside Java array using ArrayList contains() method | |
Element found on Java array using HashSet contains method | |
Element found on sorted String Java array using binary search | |
Found elements in Java array using for loop | |
Read more: http://javarevisited.blogspot.com/2012/11/4-ways-to-search-object-in-java-array-example.html#ixzz2jPAjiogo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment