コード例 #1
0
ファイル: MapSearcher.java プロジェクト: Jakegogo/concurrent
  /** 测试方法 */
  @org.junit.Test
  public void test() {

    MapBuilder<String> mapBuilder = new Maps.MapBuilder<String>().create();
    // 构建节点
    mapBuilder.addNode(Maps.Node.valueOf("A"));
    mapBuilder.addNode(Maps.Node.valueOf("B"));
    mapBuilder.addNode(Maps.Node.valueOf("C"));
    mapBuilder.addNode(Maps.Node.valueOf("D"));
    mapBuilder.addNode(Maps.Node.valueOf("E"));
    mapBuilder.addNode(Maps.Node.valueOf("F"));
    mapBuilder.addNode(Maps.Node.valueOf("G"));
    mapBuilder.addNode(Maps.Node.valueOf("H"));
    mapBuilder.addNode(Maps.Node.valueOf("I"));
    // 构建路径
    mapBuilder.addPath("A", "B", 1);
    mapBuilder.addPath("A", "F", 2);
    mapBuilder.addPath("A", "D", 4);
    mapBuilder.addPath("A", "C", 1);
    mapBuilder.addPath("A", "G", 5);
    mapBuilder.addPath("C", "G", 3);
    mapBuilder.addPath("G", "H", 1);
    mapBuilder.addPath("H", "B", 4);
    mapBuilder.addPath("B", "F", 2);
    mapBuilder.addPath("E", "F", 1);
    mapBuilder.addPath("D", "E", 1);
    mapBuilder.addPath("H", "I", 1);
    mapBuilder.addPath("C", "I", 1);

    // 构建全局Map
    Maps<String> map = mapBuilder.build();

    // 创建路径搜索器(每次搜索都需要创建新的MapSearcher)
    MapSearcher<String> searcher = new MapSearcher<String>();
    // 创建关闭节点集合
    Set<String> closeNodeIdsSet = new HashSet<String>();
    closeNodeIdsSet.add("C");
    // 设置初始节点
    searcher.init("A", map, closeNodeIdsSet);
    // 获取结果
    SearchResult<String> result = searcher.getResult("G");
    System.out.println(result);
    // test.printPathInfo();
  }