Return list of common email ids from a list of lists
Using a HashSet is fine, but you don't need to keep the count of occurrence of each email, you can just keep in the HashSet those that appear in all list, and remove all other emails.

//Need to check if email1 is empty before this step!
HashSet&lt;String&gt; set = new HashSet(); 
set.addAll(email1.get(0));
for(int i = 1; i &lt; email1.size(); i++){
    HashSet&lt;String&gt; tmp = new HashSet();
    for(String email : email1.get(i)){
        if(set.contains(email)){//If set contains this email, keep it!
           tmp.add(email);
        }
    }
    set = tmp;//Important step
}
//All emails will be in the set
System.out.println(set);