Так как никто не опубликовал решение , здесь:
char *s1 = 0;
const char *s2 = s1; // OK...
char *a[MAX]; // aka char **
const char * const*ps = a; // no error!
( http://www.parashift.com/c++-faq-lite/ const-correctness.html # faq-18.17 для почему)
Чтобы заполнить список уникальных имен, используйте Set, затем зациклите и заполните новый объект. Если вам нужен ключ, замените набор на карту.
Надеюсь, что этот пример поможет
List<Cities> citiesList = findAllByCity();
Set<Cities> uniqueCities = new HashSet<>();
citiesList.forEach(c ->{
uniqueCities.add(c);
});