2015-08-12 1 views
-2

Для практики я хочу создавать свои собственные списки и карты (например, ArrayList, HashMap, HashSet и т. Д.).Создание собственных структур данных карт и карт

Моя цель - обеспечить его как можно меньшим и гибким, сохраняя при этом хорошую производительность. (Длинная дорога ...)

У меня есть несколько вопросов:

1)

В отличие от солнца, я не должен принимать обратную совместимость во внимание. Итак, первое, что мне интересно, есть ли веские основания держать add и put? Почему не только один? Если бы я назвал put>add, это могло бы дать проблемы/сложность/непонятность в будущем?

2)

Есть ли какие-либо языки, известные иметь действительно хорошие структуры данных? (Например, они могут быть действительно умными, чтобы избежать исключения параллелизма).

3)

В прошлом больше запрос, то вопрос, если у вас есть какие-либо советы наше видение того, как вещи можно сделать разные, пожалуйста, отправьте их.

+0

1. Да, есть: они полностью разные операции с разными параметрами и возвращаемым типом. 2. Да, например, Java. 3. Я бы, вероятно, прочитал исходный код нескольких высокопроизводительных карт, уже существующих для Java. – biziclop

+0

Для разнообразия вы можете посмотреть исходный код для других языков: C++ имеет большинство/всех структур, на которые вы смотрите. Возможно, это полезное учебное упражнение, чтобы сделать то, что вы предлагаете, но вряд ли вы можете сделать лучше, чем существующие библиотеки, если у вас нет особого ** конкретного приложения. – rossum

ответ

2
  1. Там нет дублированных метод, Collection's have add метода, который возвращает метод boolean, Map's have put, который возвращает тип, связанный с Картой.

  2. Есть много примеров структуры данных, точка в том, что вам нужно, чтобы ваши данные выглядели лучше всего? Избегайте параллелизма? Сортировать? быть быстрым? хранить надежно?

  3. примеры, которые вам нужны непосредственно в исходном коде Java:

ИСТОЧНИКОВ
List
ArrayList
HashMap

и так далее ....

 Смежные вопросы

  • Нет связанных вопросов^_^