The number of times an Object is in a ArrayList can be processed using Collection.frequency method.
int nb = Collections.frequency( list, "String" );
Here is an example the creates a list with several values that are identical. The example counts the number of time a value is defined in the list using 2 methods. The first one is using Collections.frequency. The second one is for Java 8 and up and uses Lambda to filter the List and then counts the number of values left.
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CollectionFrequency {
public static void main(String[] argv) {
List<String> list = Arrays.asList("a", "b", "c", "d", "a");
final String REF = "a";
// Check the frequency
int nb = Collections.frequency( list, REF );
System.out.println( "The value "+ REF + " is " + nb + " times in the list" );
long nbLambra = list.stream()
.filter( a -> a.equals( REF ) )
.count();
System.out.println( "\nUsing Lambda" );
System.out.println( "The value "+ REF + " is " + nbLambra + " times in the list" );
}
}
The value a is 2 times in the list Using Lambda The value a is 2 times in the list
Note: The second option is more fancy, but much slower. So the first version is preferable.