Как преобразовать ключи хэш-карты в список?

У меня есть хэш-карта, и я пытаюсь преобразовать ключи в список. Вот код:

List<ARecord> recs = new ArrayList<ARecord>();

HashMap<String, ARecord> uniqueRecs = new HashMap<String, ARecord>();
for(ARecord records:recs){
    if(!uniqueRecs.containsKey(records.getId())){
        uniqueRecs.put(records.getId(), records);
    }
}

Когда я пытаюсь сделать

List<ARecord> finalRecs = new ArrayList<ARecord>(uniqueRecs.keySet());

Ошибка:

Конструктор ArrayList (Set) не определен ".

Как я могу преобразовать ключи Hashmap в List<ARecord> finalRecs?

Ответ 1

Ваш uniqueRecs имеет String тип ключа. Ты должен сделать:

List<String> keys = new ArrayList<>(uniqueRecs.keySet());

или же

List<ARecord> values = new ArrayList<>(uniqueRecs.values());

Ответ 2

Что работало для меня, что я хотел изменить существующий список:

list.addAll(map.keySet());

Ответ 3

В Java 1.7 и 1.8 работает следующее:

List<ARecord> finalRecs = new ArrayList<ARecord>();
for (final String key : uniqueRecs.keySet()) {
  finalRec.add(new ARecord() {
    public String gettld() {
       return key;
    }
  });
}