I have an ArrayList of type String. I want to determine whether any element of this ArrayList starts with a specified string and if the ArrayList contains this element, then I want to get the index of this element. In addition, I do not want to loop this ArrayList to get the index of that element.
For example :
ArrayList<String> asd = new ArrayList<String>(); // We have an array list
//We filled the array list
asd.add("abcc trtiou");
asd.add("aiwr hiut qwe");
asd.add("vkl: gtr");
asd.add("aAgiur gfjhg ewru");
Now, I want to get the index of the element vkl: gtr by using vkl: without looping array list.(searching also should be case insensitive, so, using vkl: and VkL: should give the index of vkl: gtr)
How can I do this ?
Thanks in advance.
You have to loop the ArrayList. You cant possibly access just a single index and be guaranteed it is what you’re looking for.
Also, you should consider using another data structure if a lot of searching is involved. Searching an ArrayList takes
O(n)time while something like a red-black tree can be done inO(log n).If you know before program execution the strings used to locate the items in the structure, consider using a HashMap. You can access the items in
O(1).If none of these solutions suit your particular problem expand on your answer with what you’re trying to do, we could provide a better answer as to how you’d locate your items with minimal search time.