web-dev-qa-db-ja.com

ハッシュマップキーをリストに変換する方法は?

ハッシュマップがあり、キーをリストに変換しようとしています。コードは次のとおりです。

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)は未定義です」。

ハッシュマップキーをList<ARecord> finalRecsに変換するにはどうすればよいですか?

15
Jay

uniqueRecsにはStringタイプのキーがあります。あなたはしなければならない:

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

または

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

既存のリストを変更したいと思ったのは、私にとってうまくいったことです:

list.addAll(map.keySet());
6

以下は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;
    }
  });
}
0
schtever