2016-06-24 10 views
-4

addAll()メソッドを使用せずに設定するマップのすべての要素を追加する方法addAll()を使用すると、以前の要素の設定が上書きされるためです。マップのすべての要素を追加して設定しますか?

  employeeId = new HashSet<>(map.values()); 
      employeeId.addAll(map.values()); 
      for (String value : employeeId) { 
       System.out.println(value); 
      } 
+0

を複製する「前の要素を上書きします?」定義上、重複を持つことはできません。 –

+0

実験をしてみませんか?もう少しjavadocを読む?セットのアイデアは、重複を許さないということです。マップに「B」が含まれている場合は、 "B"は既にあなたのセットに入っています、なぜあなたは "B"がオーバーライドされると思いますか?あなたが知っているのは、実際には**少し書類を読んでいくつかの実験をするだけで見つけることができるものです。 (質問をするのは問題ありませんが、プログラマーが新しいことについて学ぶための**最初の方法ではありません)。 – GhostCat

+0

addAllメソッドを使用している場合、以前に設定された要素はmapの要素に置き換えられます。 –

答えて

1

私はあなたのコードは次のようになりますと仮定します。保存したいあなたのオブジェクトは、タイプStringの右されていますか?

final Map<String,String> employeeIdsMap = new HashMap<>(); 
    employeeIdsMap.put("e1", "Employee1"); 
    employeeIdsMap.put("e2", "Employee2"); 

    final Set<String> employees = new HashSet<>(employeeIdsMap.values()); 
    employees.addAll(employeeIdsMap.values()); 
    for (final String value : employees) { 
     System.out.println(value); 
    } 

ありませんが、あなたが何を意味するん

関連する問題