Я считаю, что вы пытаетесь сопоставить несколько целых чисел с одним строковым ключом. Это возможно, но если вы нарисуете свой ключ на List
. Выбор между HashMap
или TreeMap
будет зависеть от того, хотите ли вы сохранить сортировку записей по ключу или нет.
Я считаю, что сортировка - это не то, что вы ищете; поэтому достаточно было бы HashMap
.
public Map<String, List<Integer>> map = new HashMap<String, List<Integer>>();
Затем вы можете добавить несколько значений в том же ключе, как
public void addToMappedList(Map<String, List<Integer>> map,
String key, Integer value) {
List<Integer> existingValues = map.get(key);
if (existingValues == null) {
existingValues = new ArrayList<Integer>();
map.put(key, existingValues);
}
existingValues.add(value);
}
addToMappedList(map, "foo", 1);
addToMappedList(map, "foo", 2);
Вот как идти об удалении отдельных значений из List
. Возвращаемое значение boolean указывает, действительно ли был найден и удален value
из List
или нет.
public boolean removeFromMappedList(Map<String, List<Integer>> map,
String key, Integer value) {
List<Integer> existingValues = map.get(key);
if (existingValues != null) {
return existingValues.remove(value);
}
return false;
}
removeFromMappedList(map, "foo", 1); // true
removeFromMappedList(map, "foo", 3); // false
Чтобы удалить весь ключ и List
связанный с ним просто использовать Map
непосредственно
map.remove("foo");
Что вы понимаете под смену данных? – cyberz
'map.put (" foo ", 5) map.put (" foo ", 6) return (foo, 6)' – Tony