¿Cómo almacenar más de una cadena en un mapa?

¿Es posible establecer más de dos pares de valores?

Por ejemplo:

Map 

número, nombre, dirección, teléfono: todos se unen para mostrar los valores. Cada valor asociado con otros.

Estás en negación de objeto. Debe usar un objeto que contenga el número, nombre, dirección, teléfono (tal vez podría llamarlo ContactInformation ) y ponerlo en el mapa.

No. un Map tiene solo una clave . Si desea que su valor contenga más información, ajuste las cadenas en una nueva clase:

 public class PersonalInfo { private final String name; private final String address; private final String phone; // constructor and getters } map.put(number, new PersonalInfo(name, address, phone)); 

La solución ‘correcta’ es usar un objeto que contenga los valores en campos con nombre, pero en el espíritu de responder a la pregunta, una solución simple (si no está limpia) sería usar:

 Map> yourMap = new HashMap>(); List info = new ArrayList(); info.add(number); info.add(name); info.add(address); info.add(phone); yourMap.put(key, info); 

Tenga en cuenta que google-collections tiene una serie de clases que implementan esta estructura directamente desde el recuadro llamado ListMultimap y su implementación ArrayListMultimap

No, un mapa solo puede tener una clave y asignarse a un valor.

Este es el Javadoc para Mapa:

Un objeto que asigna claves a valores. Un mapa no puede contener claves duplicadas; cada tecla se puede asignar a un máximo de un valor.

Lo que puede hacer es crear una entidad llamada User con algunos detalles, por ejemplo

 public class User implements Serializable { private String firstName; private String lastNumber; private String address; private String phoneNumber; //Generated getters and setters here.... } 

luego agrégalo a un mapa como ese …

 Map userMap = new HashMap(); User user = new User(); //populate user userMap.put(uniqueUserID, user); 

En caso de que desee mantener un mapa de: “número, nombre” -> “dirección, teléfono” y no desea crear una clase para encapsular estos atributos. Puede echar un vistazo a la útil MultiKey en Apache Commons Collections:

http://commons.apache.org/collections/apidocs/org/apache/commons/collections/keyvalue/MultiKey.html

Hmmm, podrías crear una clase para Persona con número, nombre, dirección y fonoeno, luego creas un Mapa

Como han dicho otros, un mapa es un mapeo entre una clave y un valor. Es por eso que el javadoc para mapa dice (desde generics en v5):

 Interface Map 

… donde K es el tipo de la clave, y V es el tipo del valor. Solo . Debes definir exactamente dos tipos.

Vale la pena mencionar que en matemáticas ‘mapa’ es un término que significa convertir un valor de un tipo en un valor de otro tipo. El Mapa de Java es un reflection de esto, (como es el mapa de métodos disponible en las colecciones en Scala).

Su pregunta sugiere que desea clave en cada uno de los 4 campos y todos los demás se convierten en valores. Si bien, en general, se trata de una clave y valores múltiples empaquetados en un objeto.

Por favor confirme lo que se requiere.