Почему Google Scutions не поддерживает многоуровневые коллекции Apache?

StackOverflow https://stackoverflow.com/questions/2372765

Вопрос

Является ли решение Google похоже на один для SortedMultiSet (Вопрос Stackoverflow)или это потому, что нет никакого использования MultiKeyMap?

Я знаю, что чередование для MultiKeyMap Можно использовать пользовательский класс в качестве ключа, который содержит несколько клавиш в качестве членов класса. Наоборот, мне нравится концепция указания нескольких ключей при вызове получения MultiKeyMap.

Версия Apache MultiKeyMap Это здорово, но я серьезно пропавшись дженериками и поэтому смотрел в коллекции Google для современной реализации этого. Если у кого-то есть идеи, почему Google еще не поддержал его, или есть лучшая альтернатива для этого, пожалуйста, ответьте.

Это было полезно?

Решение

У нас очень хорошая реализация двухуровневой карты, которую мы называем «таблицей» (K1 - это «ключ строки», а K2 - это клавиша «столбца»), и мы просто не получили его не выпущены. Прошедшие два ключа, хотя убывает возвращение.

Другие советы

FYI, принятый ответ был дан ответом в марте 2010 года, но по состоянию на сентябрь 2010 г. Guava включен Table.

Я думаю, что дженерики могут быть ShowStopper для реализации здесь. Если вы посмотрите на просто интерфейс карты, существуют универсальные спецификаторы для типа клавиш (K) и тип значения (V). Я не верю, что можно было бы легко указать его, используя универсальные, не отделяя реализации на несколько классов (по одному для каждого количества ключевых компонентов).

Вам понадобится класс для каждого:

MultiKeyMap2<K1,K2,V>
MultiKeyMap3<K1,K2,K3,V>
MultiKeyMap4<K1,K2,K3,K4,V>
MultiKeyMap5<K1,K2,K3,K4,K5,V>

Основная реализация в основном делает то, что вы предлагаете (используя пользовательский класс). Однако он не создает для него класса, все включено. Это действительно деталь реализации. Но использовать коллекции Google, пользовательский класс для выполнения то же самое, что будет работать так же, как я уверен, что реализовать hashcode () и равняться ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top