Ex: Delete Duplicate Contacts
List<Contact> conList = [select firstname, lastname from contact];
Map<String, ID> mMap = new Map<String, ID>();
for(Contact c: conList)
{
mMap.put(c.name, c.id);
}
List<Contact> uniqList = new List<Contact>();
List<Contact> delList = new List<Contact>();
Set<String> sSet = mMap.keySet();
Set<ID> uniqSet = new Set<ID>;
for(String s: sSet)
{
uniqSet.add(mMap.get(s));
}
for(Contact c1: conList)
{
if((uniqSet.contains(c1.id)))
uniqList.add(c1);
else
delList.add(c1);
}
delete delList;
Note: Use isDeleted=true & ALL ROWS keyword to get the deleted records from the recycle bin using SOQL.
Note: ALL ROWS keyword cannot be used in the query editor but can be used in the apex class or function while querying record in [].