В настоящее время я изучаю API коллекций Java и чувствую, что хорошо понимаю основы, но никогда не понимал, почему этот стандартный API не включает реализацию Graph. Три базовых класса легко понятны (List, Set и Map), и все их реализации в API в основном просты и последовательны.
Учитывая, как часто графики представляют собой потенциальный способ моделирования данной проблемы, это просто не имеет смысла для меня (возможно, оно существует в API, и я, конечно, не смотрю в нужном месте) , Стив Йегге предлагает в одном из своих постов в блоге, что программист должен сначала рассмотреть графы при атаке на проблему, а если проблемная область не вписывается естественным образом в эту структуру данных, то только затем рассмотреть альтернативные структуры.
Мое первое предположение состоит в том, что не существует универсального способа представления графиков или что их интерфейсы могут быть недостаточно универсальными, чтобы реализация API была полезной? Но если вы урезаете граф до его основных компонентов (вершин и набор ребер, которые соединяют некоторые или все вершины) и рассмотрите способы, как графы обычно строятся (методы, такие как addVertex (v) и insertEdge (v1, v2) Кажется, что реализация графов будет возможна и полезна.
Спасибо, что помогли мне лучше понять это.