Моя привычка состоит в том, чтобы использовать 't' - близко к 'r', таким образом, это следует легко aftewr вводящий 'для'
Нет ничего, что из коробки дает поведение dict по умолчанию. Однако создать собственный dict по умолчанию на Java не так сложно.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class DefaultDict<K, V> extends HashMap<K, V> {
Class<V> klass;
public DefaultDict(Class klass) {
this.klass = klass;
}
@Override
public V get(Object key) {
V returnValue = super.get(key);
if (returnValue == null) {
try {
returnValue = klass.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
this.put((K) key, returnValue);
}
return returnValue;
}
}
Этот класс можно использовать, как показано ниже:
public static void main(String[] args) {
DefaultDict<Integer, List<Integer>> dict =
new DefaultDict<Integer, List<Integer>>(ArrayList.class);
dict.get(1).add(2);
dict.get(1).add(3);
System.out.println(dict);
}
Этот код будет печатать: {1 = [2, 3]}
в дополнение к коллекциям apache, проверьте также коллекции google :
Коллекция, аналогичная Map, но которая может связывать несколько значений с одним ключом. Если вы вызываете put (K, V) дважды, с одним и тем же ключом, но с разными значениями, multimap будет содержать сопоставления ключа с обоими значениями.
Используя только библиотеку времени выполнения Java, вы можно использовать HashMap
и добавить ArrayList
для хранения ваших значений, когда ключ еще не существует, или добавить значение в список, когда ключ существует.