В большинстве случаев следует использовать ранее существовавшие библиотеки, написанные людьми, которые действительно знают, что они делают - эти библиотеки были тщательно протестированы и реализованы с использованием эффективных алгоритмов для достижения хорошей производительности.
Однако, если один пойдет не о том , чтобы свои собственные библиотеки, я бы сказал , пытаются подражать лучшим - посмотрите на то, как Java Collections и Google Коллекции разработаны. Посмотрите , какие интерфейсы предоставляются ( List
, Map
и т.д.) и какие абстрактные классы и реализации существуют.
Затем, если это для образовательных целей, продолжайте и напишите свои собственные реализации. Это должно быть весело, интересно и определенно сложно. Попытайтесь проверить, соответствует ли поведение, как и ожидалось, - пишите тесты, чтобы убедиться в типичном использовании и краях.
Однако я бы рекомендовал не использовать его для реального использования, кроме образовательного использования. В школе не так много ошибок, но в реальной жизни это совсем другая история.