package function;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//条线上有相同name节点的都没有问题
public class CopyOfGetGroupInfo {
public static void main(String args[]){
String s1 = "业务信息#机构业务";
String s2 = "业务信息#旅行业务";
String s3 = "客户信息#核心客户#对公客户";
String s4 = "客户信息#核心客户#对私客户";
String s5 = "客户信息#理财客户#对公客户";
String s6 = "客户信息#理财客户#对私客户";
//String s5 = "客户信息#理财客户#长期客户";
//String s6 = "客户信息#理财客户#短期客户";
String s7 = "客户信息#信贷客户";
List l = new ArrayList();
l.add(s1);
l.add(s2);
l.add(s3);
l.add(s4);
l.add(s5);
l.add(s6);
l.add(s7);
int groupId=10000;
String currDealStr = "";
//叶子节点可能存在重复
//存储单纯的节点name信息
List<String> nodeCon =new ArrayList<String>();
List<String> nodeRelas =new ArrayList<String>();
for(int i = 0;i<l.size();i++){
currDealStr = (String)l.get(i);
String nodeStrArr[] = currDealStr.split("#");
//每一条记录里的节点信息
for(int j =0;j<nodeStrArr.length;j++){
String nodeName = "";
//末节点的名称,包含了整个树枝上所有的节点
for(int k=0; k<=j ; k++){
nodeName = nodeName+nodeStrArr[k]+"#";
}
//截取字符最后的#
nodeName = nodeName.substring(0,nodeName.lastIndexOf("#"));
System.out.println("nodeName:"+nodeName);
String nodeRela = "";
if(j==0){
//第一层评分组,评分组的上级肯定是评分卡
if(nodeCon.contains(nodeName)){
System.out.println("exist");
//break 跳出了外层循环,不符合逻辑
continue;
}else{
System.out.println("first level not exist,add ");
nodeRela = (groupId++)+"@"+nodeName+"@card_root";
nodeCon.add(nodeName);
nodeRelas.add(nodeRela);
}
}else{
String currPar = "";
if(nodeCon.contains(nodeName)){
System.out.println("exist");
//break 跳出了外层循环,不符合逻辑
continue;
}else{
System.out.println("not exist,add");
//找到当前节点的父节点
nodeCon.add(nodeName);
currPar = nodeName.substring(0,nodeName.lastIndexOf("#"));
//找到当前节点的父节点的id信息
String parId= "";
Iterator it = nodeRelas.iterator();
String nodeSplit[] = null;
while(it.hasNext()){
String node = (String)it.next();
nodeSplit = node.split("@");
if(nodeSplit[1].equals(currPar)){
parId = nodeSplit[0];
break;
}
}
//String realName = nodeName.substring(nodeName.lastIndexOf("#"));
nodeRelas.add((groupId++)+"@"+nodeName+"@"+parId);
}
}
}
}
System.out.println("******************************************");
Iterator itn = nodeCon.iterator();
while(itn.hasNext()){
String node = (String)itn.next();
System.out.println(node);
}
System.out.println("******************************************");
System.out.println("******************************************");
Iterator it = nodeRelas.iterator();
while(it.hasNext()){
String node = (String)it.next();
System.out.println(node);
}
System.out.println("******************************************");
System.out.println("size:"+nodeRelas.size());
}
}