Simple solution using HashSet and basic String operations
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \nFirst locate the index 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\nFirst locate the index of @, divide the string into two parts local host name before @ and domain name after @. Do the needful by continuing the iteration if \'.\' is encountered and break out of the iteration if \'+\' is encountered. Build the whole string using Set Builer and add it into set. (Set holds unique values). Find the size of the set as answer.\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\n    public int numUniqueEmails(String[] emails) {\n        HashSet <String> set=new HashSet<>();\n        for(int i=0;i<emails.length;i++)\n        {\n            String current=emails[i];\n            StringBuilder sb=new StringBuilder();\n            int indexOfAt=current.indexOf(\'@\');\n            String localName=current.substring(0,indexOfAt);\n            String domainName=current.substring(indexOfAt);\n\n            for(int j=0;j<localName.length();j++)\n            {\n                if(localName.charAt(j)==\'.\')\n                {\n                    continue;\n                }\n                if(localName.charAt(j)==\'+\')\n                {\n                    break;\n                }\n                sb.append(localName.charAt(j));\n            }\n            sb.append(domainName);\n            set.add(sb.toString());\n        }   \n        return set.size();     \n    }\n}\n```
['Hash Table', 'String', 'Java']