Большим предположением является то, что вы используете Java:
Set<YourObject> yourHashSet = //
List<YourObject> result = new ArrayList<YourObject>();
for( YourObject o: yourHashSet ){
if( o.getMachineName().equals("machine1") && o.getEmailAddress().equals("one@example.com")){
result.add(o);
}
}
// result will contain a list of matching objects.
Это практически одинаковый код на любом языке, но если вы находитесь в C #, вы можете использовать LINQ-Objects для выполнения чего-тохорошее единственное утверждение.