51,407
社区成员
发帖
与我相关
我的任务
分享public class Test {
public static void main(String[] args) {
List<Source> list = new ArrayList<Source>();
list.add(new Source("1","3"));
list.add(new Source("2","6"));
list.add(new Source("1","2"));
list.add(new Source("3","4"));
list.add(new Source("2","3"));
List<String> result = new ArrayList<String>();
for (Source source : list) {
if (source.task.equals("1")) {
StringBuffer str = new StringBuffer(source.task + "-" + source.toTask);
getChild(list, result, source, str);
result.add(str.toString());
}
}
System.out.println(result);
}
private static void getChild(List<Source> list, List<String> result, Source parent, StringBuffer str) {
String tag = null;
String beginStr = str.toString();
for (Source source : list) {
if (parent.toTask.equals(source.task)) {
if (source.task.equals(tag)) { // 重复出现时
StringBuffer newStr = new StringBuffer(beginStr + "-" + source.toTask);
ArrayList<Source> arrayList = new ArrayList<Source>(list);
arrayList.remove(source);
getChild(arrayList, result, source, newStr);
result.add(newStr.toString());
} else {
tag = source.task;
str.append("-" + source.toTask);
ArrayList<Source> arrayList = new ArrayList<Source>(list);
arrayList.remove(source);
getChild(arrayList, result, source, str);
}
}
}
}
}
class Source {
public String task;
public String toTask;
public Source(String task, String toTask){
this.task = task;
this.toTask = toTask;
}
}