方法“ combination”应组合输入数组。而且我想获得这种组合流并将其保存到文件中。
public void writeDot() {
try (printstream out = new printstream(path,"UTF-8")) {
out.print("digraph {\n");
String[] arr = {"hyo","ji","yoo","mi","vi","se","ari"};
combination(arr,2,new String[2])
.stream()
.map(a -> Arrays.toString(a).join(" -> "))
.forEach(out::print);
out.println(";\n");
out.println("}");
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
组合方法如下:
public List<String[]> combination(String[] arr,int len,int startPosition,String[] result) {
if (len == 0) {
//System.out.println(Arrays.toString(result));
return null;
}
for (int i = startPosition; i <= arr.length - len; i++) {
result[result.length - len] = arr[i];
combination(arr,len - 1,i + 1,result);
list.add(result);
}
return list;
}
我期望的结果是:
digraph {
hyo -> ji;
ji -> hyo;
and so on..
}
但我只能得到:
digraph {
;
}
我的代码有什么问题?请帮助我。