My requirement is comparing String to ArrayList which contains a list of strings. Can any one suggest me?
7 Answers
Use
ArrayList.contains("StringToBeChecked");
If the String is present in the ArrayList, this function will return true, else will return false.
3 Comments
ArrayList.contains("StringToBeChecked");ArrayList, use your variable of type ArrayList.Look at the List#contains(T obj) method, like this:
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("xyz");
list.contains("abc"); // true
list.contains("foo"); // false
1 Comment
There are different options you could consider :
- a simple for each loop using equals on each member of your list to compare it to string A.
- sorting all strings in list in order to boost up comparison and find if a string in the list matches A.
- using a sortedSet to achieve the above
- putting alls string in the intern string pool using intern method on every item in the list and on string A. This will allow to compare strings using == and not equal anymore. Comparison would then be much faster.
- using a hashmap to achieve better comparison speeds
- an identity hashmap to mix the two preceding strategies.
Well, the are pros and cons to those methods, it all depends on what you want to do and why and how you compare strings.
Regards, Stéphane
Comments
ArrayList can contain one or more Strings. You cannot compare String with ArrayList. But you can check whether the ArrayList contains that String ot not using contains() method
String str = //the string which you want to compare
ArrayList myArray =// my array list
boolean isStringExists = myArray.contains(str);// returns true if the array list contains string value as specified by user
Comments
If you are willing to use Lambdaj, then check the presence of the String as:
private boolean isContains(ArrayList<String> listOfStrings, String testString) {
return (Lambda.select(listOfStrings, Matchers.equalTo(testString)).size() != 0);
}
Using static import of select and equalTo increase the readability:
select(listOfStrings, equalTo(testString));
Comments
Convert your Array to Array list first
List al = Arrays.asList("Your Array");
Then compare using contains or equals
if (al.contains("Your String") {
// Code
}
Stringto anArrayList. Be precise and show what you did until now.