实施neo4j定制电梯

时间:2014-05-23 10:17:19

标签: java neo4j

现在我尝试使用neo4j实现一个项目。 我实施了我的评估员。 bfs上的每个节点都有两组:in和out。 在途中遇到一个节点,做一些交叉检查并决定是否继续。 但我现在的代码没有进入评估者。我添加了一些打印检查点。什么都没有出现。

public final class MyEvaluator implements Evaluator {

        ArrayList<HashSet<Integer>> templin;
        ArrayList<HashSet<Integer>> templout;
        Node tempnode;
        public MyEvaluator(Node node, ArrayList<HashSet<Integer>> lin,ArrayList<HashSet<Integer>> lout ) { 
            templin=lin;
            templout=lout;
            tempnode=node;
        }
        @Override
        public Evaluation evaluate(Path path) { 
        Node pc=path.endNode();
        System.out.println("test!!!");
         if (Collections.disjoint(templin.get((int) pc.getProperty("nodeID")), templout.get((int) tempnode.getProperty("nodeID")))){
             //Returns true if the two specified collections have no elements in common.
              //System.out.println("here");
            templin.get((int) pc.getProperty("nodeID")).add((int) tempnode.getProperty("nodeID"));
            System.out.println(templin.get((int) pc.getProperty("nodeID")));
             return Evaluation.INCLUDE_AND_CONTINUE;
          }else{
             return Evaluation.EXCLUDE_AND_PRUNE;
          }                                                                                                                        
     }
    }
    public Traverser nodes( Node node, ArrayList<HashSet<Integer>> lin,ArrayList<HashSet<Integer>> lout )
    {   

        return  friendsTraversal
                .evaluator(new MyEvaluator(node, lin, lout))
                .traverse( node );
    }

1 个答案:

答案 0 :(得分:0)

你还必须迭代遍历结果,遍历是一个懒惰的操作。

for (Node n: nodes(...)) {
   // do something
}