Для практики я хочу создавать свои собственные списки и карты (например, ArrayList, HashMap, HashSet и т. Д.).Создание собственных структур данных карт и карт
Моя цель - обеспечить его как можно меньшим и гибким, сохраняя при этом хорошую производительность. (Длинная дорога ...)
У меня есть несколько вопросов:
1)
В отличие от солнца, я не должен принимать обратную совместимость во внимание. Итак, первое, что мне интересно, есть ли веские основания держать add
и put
? Почему не только один? Если бы я назвал put
>add
, это могло бы дать проблемы/сложность/непонятность в будущем?
2)
Есть ли какие-либо языки, известные иметь действительно хорошие структуры данных? (Например, они могут быть действительно умными, чтобы избежать исключения параллелизма).
3)
В прошлом больше запрос, то вопрос, если у вас есть какие-либо советы наше видение того, как вещи можно сделать разные, пожалуйста, отправьте их.
1. Да, есть: они полностью разные операции с разными параметрами и возвращаемым типом. 2. Да, например, Java. 3. Я бы, вероятно, прочитал исходный код нескольких высокопроизводительных карт, уже существующих для Java. – biziclop
Для разнообразия вы можете посмотреть исходный код для других языков: C++ имеет большинство/всех структур, на которые вы смотрите. Возможно, это полезное учебное упражнение, чтобы сделать то, что вы предлагаете, но вряд ли вы можете сделать лучше, чем существующие библиотеки, если у вас нет особого ** конкретного приложения. – rossum