Map<K,V<List<K>> graph = new HashMap<K,V<List<K>>();
Существуют ли какие-либо серьезные препятствия для использования этого для представления ориентированного графа, который может быть циклическим?
РЕДАКТИРОВАТЬ:
Это было более запутанным, чем этовероятно, должно было быть.Это график разговоров для РПГ, и вот что я имею до сих пор.Я пытался определить, смогу ли я преобразовать это в более простую форму:
Инициализировано для NPC:
public interface ConversationGraphI {
void init();
Map<String, DialogueNodeI> getConversation();
void setConversation(Map<String, DialogueNodeI> conversation);
}
Часть диалога с вариантами ответа:
public interface DialogueNodeI {
String getText();
void setText(String text);
List<ResponseChoiceI> getResponseChoices();
void setResponseChoices(List<ResponseChoiceI> responseChoices);
}
Выбор ответа, который затем может вернуться к другой части диалога на карте:
public interface ResponseChoiceI {
String getResponseText();
void setResponseText(String responseText);
String getDialogueKey();
void setDialogueKey(String dialogueKey);
}