-1
私はGraphBFSとFriendRecという2つのクラスファイルを持っています(これはGraphBFSの拡張です)。私はこのメソッド(getNodesAtDepth)をGraphBFSの中に持っています(以下に含まれています)、そしてFriendRecにgetFriendRecommendationsというものがあります。ノードのリストがgetNodesAtDepthで作成されると、期待通りに機能し、必要なすべての文字列を含みます。しかし、getFriendRecommendationsで呼び出されると、空であり、そこには何もありません。誰が何が起こっているのか考えている?別のファイルから呼び出されたときにデータを保持しない文字列のセット
public Set<String> getNodesAtDepth(int depths) {
Set<String> ret = new HashSet<String>();
setInitialNode(initNode);
while (!queue.isEmpty()) {
String node = fetchFromQueue();
setExploredNode(node);
if(depths<depth.get(node)){
break;
}
if(depth.get(node)==depths){
ret.add(node);
}
Set<String> neighbors = graph.getNeighbors(node);
for (String n : neighbors) {
if (status.get(n) == null) {
System.out.println("Node" + n);
setFrontierNode(n);
depth.put(n, (depth.get(node)+1));
addToQueue(n);
//ret.add(n);
}
}
}
System.out.println("Nodes at Depth Level" + depths + ":");
System.out.println(ret.toString());
return ret;
}
public List<Recommendation> getFriendRecommendationsInRankOrder(String node, int threshold) {
List<Recommendation> recs = new ArrayList<Recommendation>();
Set<String> friendsOfFriends = getNodesAtDepth(2);
System.out.println("Geoffroy:" + getNodesAtDepth(2).toString());
System.out.println("Blank Number" +friendsOfFriends.size());
for (String n: friendsOfFriends){
System.out.println("Support = "+getSupportFor(n));
if(getSupportFor(n)>=threshold){
System.out.println("BRANKKK");
Recommendation recTemp = new Recommendation(n,getSupportFor(n));
recs.add(recTemp);
}
}
System.out.print("t");
// Now sort in reverse order of support
Collections.sort(recs, Collections.reverseOrder());
return recs;
}