List<Item> result = new ArrayList<Item>(); Set<String> titles = new HashSet<String>(); for( Item item : originalList ) { if( titles.add( item.getTitle() ) { result.add( item ); } } add() of the Set returns false if the element already exists.