¿Convertir el valor de la clave HashMap (String) en Vector <String>?

Tengo un hashmap declarado como:

HashMap<String, Double> hm = new HashMap<String, Double>();

Estoy declarando un vector como:

 Vector<String> productList = new Vector<String>();

Ahora, estoy tratando de agregar las claves en el vector:

  Set set = hm.entrySet();
  // Get an iterator
  Iterator i = set.iterator();
  // Display elements
  while(i.hasNext()) {
     Map.Entry me = (Map.Entry)i.next();
     //System.out.print(me.getKey() + ": ");
     productList.add(me.getKey());
     //System.out.println(me.getValue());
  }

//hm is the HashMap holding the keys and values.

Cuando compilo el código me da el siguiente error:

ProductHandler.java:52: error: no suitable method found for add(Object)
     productList.add(me.getKey());
                ^
method Collection.add(String) is not applicable
  (argument mismatch; Object cannot be converted to String)

¿Necesitamos convertir los valores al tipo de cadena antes de intentar agregarlo al vector? ¿Me estoy perdiendo algo?

Respuesta 1

Primero, puedes hacerlo en una línea con el Vector(Collection<? extends E)constructor y una llamada a me Map.keySet()gusta

Vector<String> productList = new Vector<>(hm.keySet());

En segundo lugar, debes preferir un 1ArrayList

List<String> productList = new ArrayList<>(hm.keySet());

1 A menos que comparta esta lista con varios subprocesos, agregar sincronización con a Vectores un costo .

Respuesta: 2

Estoy escribiendo una aplicación de escritorio y me gusta usar componentes swing ya que javafx no proporciona un componente de panel con pestañas. Puedo incrustar mi componente de swing personalizado con SwingComponent.wrap (swingComp); Entonces ...

Cómo hacer que esta tabla se ajuste automáticamente al ancho de página del documento, cuando el tamaño de la columna aumenta, usando apache-poi y alineando esa tabla al centro. Este código genera un documento de Word que extrae datos de ...

Mi código se da a continuación. public static void main (String [] args) {// Lógica de aplicación de código TODO aquí Archivo pcounter_log = nuevo archivo ("c: \ development \ temp \ test.log"); intente {Tailer tailer = ...

Cuando uso ArrayList en Java, hay algunas cosas que no entiendo. Aquí está mi código de inicialización: ArrayList <Integer> list = new ArrayList <Integer> (); list.add (0); list.add ...