Topological Sort In Java