Один из самых интересных примеров из моего последнего доклада на jug-ekb (на JPoint этот пример не влез) это скаляризация композитных ключей в поиске по словарю:
final Map<CompositeKey, V> map = ...;
...
final CompositeKey key = new CompositeKey( key1, key2, ... );
final V value = map.get( key );
...
Это весьма частый паттерн: нам нужно отображение вида
[key1, key2, key3...] -> value
. Наиболее простой и очевидный способ это сделать: как раз таки использовать композитный ключ (кортеж из ключей). Решение отличное по всем показателям, кроме одного: для каждого поиска в словаре придется создавать новый объект.