次のハッシュマップがあります。
Tables => Set of Parent Tables [ HashMap<String, HashSet<String>> ]
非周期的なケースの例は次のとおりです。
A -> [B,C]
D -> [B,C]
B -> [C]
c -> []
周期的なケースの例は次のとおりです。
A -> [B,C]
B -> [C]
C -> [A]
周期的なケースを拒否したいので、提供されたハッシュマップに周期があるかどうかを検出できる関数が必要です:
public boolean hasDependencies(HashMap<String, HashSet<String>> objectAndItsDependentsMap)
{
//Implementation
}
サイクルを検出するアルゴリズムを提案する投稿を読んだことがありますが、Java の初心者であるため、その知識を使用して上記の関数を構成することはできませんでした。