2016-06-24 17 views
-4

Wie fügt man alle zu setzenden Elemente der Map hinzu, ohne die addAll() - Methode zu verwenden, denn wenn ich addAll() verwende, übersteuert es die vorherigen Elemente der Menge?Alle Elemente der zu setzenden Karte hinzufügen?

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

Was meinst du mit „die bisherigen Elemente überschreiben?“ Ein Satz kann per Definition keine Duplikate enthalten. –

+0

Warum machst du nicht einfach ein Experiment? Und lesen Sie noch mehr Javadoc? Sie sehen die Idee einer Menge ist, dass es keine Duplikate erlaubt. Also wenn deine Karte "B" enthält; und "B" ist bereits in deinem Set, warum nimmst du an, dass "B" überschrieben würde? Wissen Sie, das sind Dinge, die Sie wirklich herausfinden können, indem Sie ein bisschen Dokumentation lesen und ein paar Experimente machen. (Fragen stellen ist in Ordnung, aber es sollte nicht die ** erste ** Möglichkeit für einen Programmierer sein, über neue Dinge zu lernen). – GhostCat

+0

Die Elemente, die vorher in set sind, werden durch die Elemente der Map ersetzt, wenn die Methode addAll verwendet wird. –

Antwort

1

Ich nehme Ihr Code etwa wie folgt aussieht: Ihre Objekte, die Sie String rechts sind vom Typ zu speichern?

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); 
    } 

keine Duplikate

Verwandte Themen