Как сохранить несколько карт на карте?

Возможно ли установить более двух значений пары?

Например:

Map<String,String,String,String>

номер, имя, адрес, телефон - все собраны для отображения значений. Каждое значение связано с другими.

Ответ 1

Вы находитесь в отрицании объектов. Вы должны использовать объект, который содержит номер, имя, адрес, телефон (возможно, вы могли бы назвать его ContactInformation) и поместить его на карту.

Ответ 2

Нет. a Map имеет только один ключ. Если вы хотите, чтобы ваше значение содержало больше информации, оберните строки в новый класс:

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

Ответ 3

"Правильное" решение - использовать объект, который содержит значения в именованных полях, но в духе ответа на заданный вопрос простое (если нечистое) решение должно было бы использовать:

Map<String,List<String>> yourMap = new HashMap<String,List<String>>();

List<String> info = new ArrayList<String>();
info.add(number);
info.add(name);
info.add(address);
info.add(phone);

yourMap.put(key, info);

Примечание google-collections имеет серию классов, которые реализуют эту структуру прямо из коробки под названием ListMultimap и его реализация ArrayListMultimap

Ответ 4

Нет, карта может иметь только один ключ и сопоставляется с одним значением.

Это Javadoc для карты:

Объект, который сопоставляет ключи значениям. карта не может содержать дубликаты ключей; каждый ключ может отображать не более одного значения.

Что вы можете сделать, так это создать объект под названием User с некоторыми подробностями, например,

public class User implements Serializable {

    private String firstName;
    private String lastNumber;
    private String address;
    private String phoneNumber;

    //Generated getters and setters here....
}

затем добавьте его на такую ​​карту...

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

Ответ 6

Hmmm, Вы можете создать класс для Person с номером, именем, адресом и phoneno, затем вы создадите карту

Ответ 7

Как говорили другие, карта представляет собой сопоставление между ключом и значением. Вот почему javadoc для карты говорит (поскольку generics в v5):

Interface Map<K,V>

... где K - тип ключа, а V - тип значения. Просто < K, V > . Вы должны определить ровно два типа.

Следует отметить, что в математике "карта" - это термин, означающий преобразование значения одного типа в значение другого типа. Карта Java является отражением этого (как и карта методов, доступная для коллекций в Scala).

Ответ 8

В вашем вопросе вам предлагается, чтобы ключ на каждом из 4 полей, а все остальные стали значениями. Хотя в общем случае это один ключ и несколько значений, упакованных на объект.

Пожалуйста, подтвердите, что требуется.