Necesito un mapa donde los valores sean de diferentes tipos, como entero, cadena, etc. El problema con Java es que las primitivas aquí no son Object
s, lo que sugiere que no es posible tener un diccionario híbrido. Quiero confirmar esto¿Hay algún diccionario que acepte valores de varios tipos de datos?
Respuesta
Puede explotar el autoboxing y usar Integer
en lugar de int, etc.
Los tipos correspondientes (Integer
, Double
, Bool
, ...) heredar objeto, por lo que podría utilizar un estándar Map<Object, Whatever>
y tirar cosas arbitraria en ella.
Parece que solo quiere un Map<String, Object>
(o cualquiera que sea su tipo de clave).
Los valores primitivos serán en caja apropiada:
Map<String, Object> map = new HashMap<String, Object>();
map.put("int", 20);
map.put("long", 100L);
// etc
Tenga en cuenta que con el fin de recuperar el valor y unbox ella, hay que mencionar el tipo de contenedor específico:
// Explicit unboxing
int x = (int) (Integer) map.get("int");
// Implicit unboxing
int y = (Integer) map.get("int");
// USing a method from Number instead
int z = ((Integer) map.get("int")).intValue();
Vaya, Jon, realmente no duermes. Estaba a punto de publicar la misma cosa. :) –
Otra opción para los números es Map
@ Peter Lawrey, el OP quiere un valor también de tipo String. El número no califica. –
Puede use Integer
en lugar de int
.
Cuando coloca primitivas en Map
en Java, obtienen Auto-Boxed en su formulario de objetos. Por ejemplo, si tiene un Map
definido como:
Map<Integer, String> myMap = new HashMap<Integer, String>();
continuación, puede utilizar las primitivas de tipo int
, ya que serán auto-encajonado en un Integer
.
En cuanto a su pregunta original, que definen un Map
como tal:
// using Integer for key type, can be something else
Map<Integer, Object> myMap = new HashMap<Integer, Object>();
, entonces debería ser capaz de poner cualquier objeto Java en el mapa.
Map ** es ** una interfaz, por lo que 'new Map
@The Elite Gentleman - Disculpe, error –
- 1. ¿Hay marcos web MVC que admitan varios tipos de solicitud?
- 2. Diccionario de tipos de clase
- 3. ¿Hay interfaces compartidas por tipos de valores que representan números?
- 4. ¿Cómo enviar un diccionario a una función que acepte ** kwargs?
- 5. ¿es posible hacer una función que acepte múltiples tipos de datos para un argumento dado?
- 6. ¿Cómo puedo hacer que un host virtual acepte varios dominios?
- 7. ¿Hay algún generador de datos falso que funcione con Android?
- 8. juego varios constructores de tipos de datos a la vez
- 9. ¿Cómo creo un diccionario que contiene diferentes tipos en C#
- 10. ¿Cómo puedo hacer que NSMutableArray solo acepte valores únicos?
- 11. Diccionario de C#, 2 valores
- 12. Diccionario de valores múltiples
- 13. Los booleanos tienen dos valores posibles. ¿Hay tipos que tienen tres valores posibles?
- 14. Estilo de diccionario reemplazar varios elementos
- 15. ¿Hay alguna manera de escribir un Método de extensión que se aplique a varios tipos?
- 16. Pros y contras de bases de datos de varios valores
- 17. ¿Puedo crear un diccionario de tipos genéricos?
- 18. tipos de valores inmutables
- 19. ¿Hay razones para no almacenar valores booleanos en SQL como tipos de datos de bit?
- 20. C# ¿Cómo puedo definir un diccionario que contenga diferentes tipos?
- 21. GWT RequestFactory y varios tipos
- 22. ¿Hay una degradación del rendimiento cuando SIEMPRE utilizamos tipos de valores que aceptan valores numéricos en lugar de tipos de valores?
- 23. Crear un diccionario de Python que contiene pares de valores clave específicas de otro diccionario
- 24. ¿Hay algún servidor ldap gratuito con datos?
- 25. ¿Hay una colección que funcione como un diccionario sin los valores?
- 26. Diccionario de listas genéricas o tipos variables
- 27. ¿Hay algún tipo de firma que Haskell no pueda verificar?
- 28. Valores Unboxing Tipos de objetos
- 29. ¿Hay algún tiempo de espera para los datos de NSDataconcontentsofurl?
- 30. ¿Hay algún mecanismo de enlace de datos disponible para iOS?
vea también http://stackoverflow.com/questions/2001755/using-int-as-a-type-parameter-for-java-util-dictionary – Fortega
Es posible que desee compartir más de su diseño para comentarios. En mi experiencia, el uso de diferentes tipos de valores en un mapa a menudo es un signo de un diseño menos que óptimo. –
Quiero un generador de registros JSON que pueda crear un árbol, basado solo en el mensaje en lugar de convertirlo en una clase objetivo determinada. Así que quiero un diccionario (diccionario o mapa, cualquiera que sea el nombre) o una lista