Мне было интересно, как я могу получить третье значение для первого ключа на этой карте. Это возможно? Извините, если это повторено, но я ничего не нашел.
HashMap: один ключ, несколько значений
Ответ 1
Библиотеки существуют для этого, но самый простой простой способ Java - создать Map of List следующим образом:
Map<Object,ArrayList<Object>> multiMap = new HashMap<Object,ArrayList<Object>>();
		Ответ 2
Похоже, вы ищете multimap. Guava имеет различные Multimap реализации, обычно созданные с помощью Multimaps.
Я бы предположил, что использование этой реализации, вероятно, будет проще, чем сворачивать ваши собственные, выработать то, что должен выглядеть API, тщательно проверять существующий список при добавлении значения и т.д. Если ваша ситуация имеет особое отвращение к третьему партийных библиотек, возможно, стоит этого сделать, но в противном случае Гуава - сказочная библиотека, которая, вероятно, поможет вам и с другим кодом:)
Ответ 3
Например:
Map<Object,Pair<Integer,String>> multiMap = new HashMap<Object,Pair<Integer,String>>();
 где Pair - это параметрический класс
public class Pair<A, B> {
    A first = null;
    B second = null;
    Pair(A first, B second) {
        this.first = first;
        this.second = second;
    }
    public A getFirst() {
        return first;
    }
    public void setFirst(A first) {
        this.first = first;
    }
    public B getSecond() {
        return second;
    }
    public void setSecond(B second) {
        this.second = second;
    }
}
		Ответ 4
У вас есть что-то вроде этого?
HashMap<String, ArrayList<String>>
Если это так, вы можете выполнить итерацию через свой ArrayList и получить элемент, который вам нравится, с помощью arrayList.get(i).
Ответ 5
Стандартная Java HashMap не может хранить несколько значений для каждого ключа, любая новая запись, которую вы добавите, перезапишет предыдущую.
Ответ 6
Это то, что я нашел в подобном вопросе answer
Map<String, List<String>> hm = new HashMap<String, List<String>>();
List<String> values = new ArrayList<String>();
values.add("Value 1");
values.add("Value 2");
hm.put("Key1", values);
// to get the arraylist
System.out.println(hm.get("key1"));
РЕЗУЛЬТАТ: [Значение 1, значение 2]
Ответ 7
Попробуйте использовать коллекции для хранения значений ключа:
Map<Key, Collection<Value>>
вам нужно самому сохранить список значений
Ответ 8
Я нашел блог в случайном поиске, я думаю, что это поможет в этом: http://tomjefferys.blogspot.com.tr/2011/09/multimaps-google-guava.html
public class MutliMapTest {
public static void main(String... args) {
   Multimap<String, String> myMultimap = ArrayListMultimap.create();
   // Adding some key/value
   myMultimap.put("Fruits", "Bannana");
   myMultimap.put("Fruits", "Apple");
   myMultimap.put("Fruits", "Pear");
   myMultimap.put("Vegetables", "Carrot");
   // Getting the size
   int size = myMultimap.size();
   System.out.println(size);  // 4
   // Getting values
   Collection<String> fruits = myMultimap.get("Fruits");
   System.out.println(fruits); // [Bannana, Apple, Pear]
   Collection<string> vegetables = myMultimap.get("Vegetables");
   System.out.println(vegetables); // [Carrot]
   // Iterating over entire Mutlimap
   for(String value : myMultimap.values()) {
      System.out.println(value);
   }
   // Removing a single value
   myMultimap.remove("Fruits","Pear");
   System.out.println(myMultimap.get("Fruits")); // [Bannana, Pear]
   // Remove all values for a key
   myMultimap.removeAll("Fruits");
   System.out.println(myMultimap.get("Fruits")); // [] (Empty Collection!)
}
}
		Ответ 9
Мысль о карте с двумя ключами сразу заставила меня использовать определяемый пользователем ключ, и это, вероятно, будет класс. Ниже приведен ключ:
public class MapKey {
    private Object key1;
    private Object key2;
    public Object getKey1() {
        return key1;
    }
    public void setKey1(Object key1) {
        this.key1 = key1;
    }
    public Object getKey2() {
        return key2;
    }
    public void setKey2(Object key2) {
        this.key2 = key2;
    }
}
// Create first map entry with key <A,B>.
        MapKey mapKey1 = new MapKey();
        mapKey1.setKey1("A");
        mapKey1.setKey2("B");
		Ответ 10
HashMap - одиночный ключ и несколько значений с использованием списка
Map<String, List<String>> map = new HashMap<String, List<String>>();
  // create list one and store values
    List<String> One = new ArrayList<String>();
    One.add("Apple");
    One.add("Aeroplane");
    // create list two and store values
    List<String> Two = new ArrayList<String>();
    Two.add("Bat");
    Two.add("Banana");
    // put values into map
    map.put("A", One);
    map.put("B", Two);
    map.put("C", Three);