I have a list which contains duplicate entries. List<Account> aList1=new List<Account>([select Id,Name from account where Name LIKE '%Falcon%']); Map<String,Account> aMap=new Map<String,Account>(); for(Account a:aList1) { aMap.put(a.Name,a); // remove duplicate if any } Now I have created a trigger on account object that prevents duplicates. Now I want to compare all values in aMap with all records in aList2. If there are any duplicates they are removed. List<Account> aList2=[select ID,Name from Account ORDER BY Name]; for(Account a:aList2) { if(aMap.containsKey(a.Name)) aMap.remove(a.Name); removes duplicates from aList1 } Database.Insert(aMap.values(),false); But after the for Loop, aMap is empty.Please let me know.