Java Interview Practice Problem (Beginner): Distinct Email IDs

  • Post last modified:September 10, 2023
  • Reading time:3 mins read


  • The Frontend application allows the marketing team to upload email addresses. But there maybe cases where this upload feature contains duplicate email addresses which will cause a unique constraint violation in the database.
  • Write a Java program that reads and outputs only unique user emails so that I can persist into the database without any constraint violation.


input email list

  • Our input list contains an email address. As we can see there is a duplicate for “”, and “”.


  • Our output only has one occurrence of “”, and “”.

Before jumping to the solution consider giving an attempt.


Sample Input Data

 public static void main(String[] args) {
      Common common = new Common();
      List<String> input = common.getEmailList();

Solution 1

  • In this solution, we are iterating over the input list and storing it in a hashmap. Hashmap doesn’t allow us to insert duplicate keys so for cases where we have 2 or more email IDs, it will essentially be a replace operation in hashmap and hashmap will have only one occurrence of that email
  • Once we have a hashmap, we can convert hashmap keys into a list and return it.
       public static List<String> solution1(List<String> input) {
        Map<String, Integer> emailMap = new HashMap<>();
        input.forEach(e ->emailMap.putIfAbsent(e, 1));
        return emailMap.keySet().stream().toList();

Solution 2

  • This solution is similar to solution 1. Instead of a hashmap, it’s logical to use HashSet since we don’t need an occurrence count.
  • HashSet only stores distinct values. We can initialize HashSet with input and then convert it back to a list.
    public static List<String> solution2(List<String> input) {
        return new HashSet<>(input).stream().toList();

Solution 3

Java streams API also provides a distinct method to select only distinct elements and store them in a collection.

    public static List<String> solution3(List<String> input) {


Find all the code for this & other exercises on GitHub

Over to youWrite down your solution in the comment section for others to get back to it

Before You Leave

Other Problems List

Leave a Reply