Поскольку это звучит так, как будто вы находитесь в классе алгоритмов, я бы отделил реализацию словаря и списка пропусков от того, что предоставляется Java API. На данный момент более важно, чтобы вы поняли концепцию этих абстрактных типов данных, потому что они могут быть реализованы на любом языке (C #, PHP, Scheme, Brainfuck и т. Д.)
Ваш инструктор, вероятно, захочет, чтобы вы: сначала определили интерфейс или контракт для словаря (или списка пропуска), а затем выяснили его реализацию. Если вы программируете на Java, используйте JUnit для проверки правильности ваших алгоритмов. Если вы программируете на каком-то другом языке, поищите любой API xUnit.
Посмотрите в Словарь алгоритмов и структур данных NIST как дополнительный ресурс к вашему учебнику, чтобы понять, что эти вещи означают. Вероятно, лучшая книга по алгоритмам на Java - книга Седжвика, и ее основным отличием является педагогическое использование апплетов. Поскольку пример кода не написан на идиоматическом языке Java, я бы не стал искать в нем реализации алгоритмов промышленного уровня. В конце концов, вы должны выполнять работу самостоятельно, а не использовать чужой API коллекций.
Кстати, в Java 6 есть две реализации пропущенных списков: ConcurrentSkipListSet
и ConcurrentSkipListMap
. И интерфейс структуры данных словаря в Java это Map
.