java递归问题

如有数组[["白色","黑色"],["64GB","128GB"],["中国移动","中国联通"]]
要拼接返回一个数组
如["白色/64GB/中国移动","黑色/64GB/中国移动","白色/128GB/中国移动","黑色/128GB/中国移动","白色/64GB/中国联通","黑色/64GB/中国联通","白色/128GB/中国联通","黑色/128GB/中国联通"]

问题是 数组[["白色","黑色"],["64GB","128GB"],["中国移动","中国联通"]] 不是固定的的 可能只有一个数组 可能有两个数组 可能有三个数组 可能有四个数组
数组里的值也不固定 ,可能只有一个,可能有5个
有大神在吗?


蝴蝶刀刀
浏览 611回答 1
1回答

眼眸繁星

public&nbsp;class&nbsp;test&nbsp;{ public&nbsp;static&nbsp;List>&nbsp;source;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;source&nbsp;=&nbsp;new&nbsp;ArrayList<>(); &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;a&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;a.add("黑色"); &nbsp;&nbsp;&nbsp;&nbsp;a.add("白色"); &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;b&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;b.add("64G"); &nbsp;&nbsp;&nbsp;&nbsp;b.add("128G"); &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;c&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;c.add("中国联通"); &nbsp;&nbsp;&nbsp;&nbsp;c.add("中国移动"); &nbsp;&nbsp;&nbsp;&nbsp;source.add(a); &nbsp;&nbsp;&nbsp;&nbsp;source.add(b); &nbsp;&nbsp;&nbsp;&nbsp;source.add(c); &nbsp;&nbsp;&nbsp;&nbsp;ArrayList<String>&nbsp;result&nbsp;=&nbsp;new&nbsp;ArrayList<>(); &nbsp;&nbsp;&nbsp;&nbsp;recursion(result,&nbsp;source.get(0),&nbsp;0,&nbsp;""); &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(result); } public&nbsp;static&nbsp;void&nbsp;recursion(List<String>&nbsp;result,&nbsp;List<String>&nbsp;para,&nbsp;int&nbsp;num,&nbsp;String&nbsp;choose)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;para.size();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(source.size()&nbsp;==&nbsp;num&nbsp;+&nbsp;1)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.add(choose&nbsp;+&nbsp;"/"&nbsp;+&nbsp;para.get(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recursion(result,&nbsp;source.get(num&nbsp;+&nbsp;1),&nbsp;num&nbsp;+&nbsp;1,&nbsp;choose&nbsp;+&nbsp;"/"&nbsp;+&nbsp;para.get(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java