[英]how to find path to Java source code files from JUnit tests execution via Bazel
[英]How to find all path from Source node java code
我有輸入的HashMap
static HashMap<Integer, List<Integer> > map = new HashMap<Integer, List<Integer>>();
基本輸入是這樣的:
1 :: [2, 11] , 2 :: [1, 3] , 3 :: [2, 11, 5] , 4 :: [11, 12] , 5 :: [6, 7, 3] , 6 :: [5, 7] , 7 :: [5, 6] , 8 :: [12, 10] , 9 :: [12, 10] , 10 :: [8, 9] , 11 :: [1, 3, 4] , 12 :: [4, 8, 9]
從1可以顯示到2或11,從2可以到1或3 ...
我需要找到我們可以旅行的最大節點長度,從1開始...
最后,我編寫了一個程序來解決這個問題。 我假設沒有無限循環。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
class Kavi {
static HashMap<Integer, List<Integer> > map = new HashMap<Integer, List<Integer>>();
static HashMap<Integer, HashSet<Integer> > nodeValuesMap=new HashMap<Integer, HashSet<Integer>>();
static HashMap<Integer, HashSet<Integer> > allPossibleTraversedNodes=new HashMap<Integer, HashSet<Integer>>();
static HashMap<Integer, List<Integer> > putVal()
{
ArrayList<Integer> list;
list=new ArrayList<Integer>();
list.add(2); list.add(4);
map.put(1, list);
list=new ArrayList<Integer>();
list.add(3);list.add(5); list.add(6);
map.put(2, list);
list=new ArrayList<Integer>();
list.add(6);
map.put(3, list);
list=new ArrayList<Integer>();
list.add(3);list.add(5); list.add(6);
map.put(4, list);
list=new ArrayList<Integer>();
list.add(6);
map.put(5, list);
return map;
}
public static void recurs(int node)
{
ArrayList<Integer> list=(ArrayList<Integer>) map.get(node);
if(list==null)
return;
if(nodeValuesMap.get(node)==null)
{
HashSet<Integer> nodeSet=new HashSet<Integer>();
nodeSet.addAll(list);
nodeValuesMap.put(node,nodeSet );
for(Integer i:nodeSet)
recurs(i);
}
else
{
HashSet<Integer> nodeSet=nodeValuesMap.get(node);
nodeSet.add(node);
nodeValuesMap.put(node, nodeSet);
}
}
public static void main(String[]
args){
putVal();
for(int i=1;i<=map.size();i++)
{
recurs(i);
HashSet<Integer> tempNodeSet=new HashSet<Integer>();
for(int j=1;j<=map.size();j++)
{
if(null!=nodeValuesMap.get(j))
tempNodeSet.addAll(nodeValuesMap.get(j));
}
allPossibleTraversedNodes.put(i,tempNodeSet);
nodeValuesMap.clear();
}
for(int i=1;i<=allPossibleTraversedNodes.size();i++)
{
HashSet<Integer> nodeSet=(HashSet<Integer>) allPossibleTraversedNodes.get(i);
System.out.println("Base Node := "+i +" All Possible Traversed Nodes:= ");
for(Integer node:nodeSet)
System.out.print(node+" , ");
System.out.println("\n--------------------------------");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.