import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;public class Test { public static void main(String[] args) {
String[] array=new String[]{
"1","2","3","4"
};
listAll(Arrays.asList(array),"");
}
public static void listAll(List candidate,String prefix){
System.out.println(prefix);
for(int i=0;i<candidate.size();i++){
List temp = new LinkedList(candidate);
listAll(temp,prefix+temp.remove(i));
}
}
}
这题是求一个数组里的数组合,比如1,2的数组合是1,2,12,21
这段代码我有些地方不是很明白:
for(int i=0;i<candidate.size();i++){
List temp = new LinkedList(candidate);
listAll(temp,prefix+temp.remove(i));
}
这个candidate是我困惑的地方,它每次赋值给temp的是什么?不知道我解释清楚了没有,或都哪位朋友能解释一下流程,谢谢!
import java.util.LinkedList;
import java.util.List;public class Test { public static void main(String[] args) {
String[] array=new String[]{
"1","2","3","4"
};
listAll(Arrays.asList(array),"");
}
public static void listAll(List candidate,String prefix){
System.out.println(prefix);
for(int i=0;i<candidate.size();i++){
List temp = new LinkedList(candidate);
listAll(temp,prefix+temp.remove(i));
}
}
}
这题是求一个数组里的数组合,比如1,2的数组合是1,2,12,21
这段代码我有些地方不是很明白:
for(int i=0;i<candidate.size();i++){
List temp = new LinkedList(candidate);
listAll(temp,prefix+temp.remove(i));
}
这个candidate是我困惑的地方,它每次赋值给temp的是什么?不知道我解释清楚了没有,或都哪位朋友能解释一下流程,谢谢!
解决方案 »
- for语句出错,但不知哪里出错,求指教?
- 什么环境下使用ThreadLocal,(不要说hibernate,还没学)
- 带有以下格式程序导入后怎么将其在Eclipse运行?
- 如何在JPanel里面添加动态的文字
- swtich的参数为什么不允许是String形的。
- 如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?
- exception in thread "main" java.lang.NoClassDefFoundError:hello/class
- 关于JTextArea的文本区内文本行间距问题,求助
- HashMap------------->int[]
- 怎样获取URL
- 求:朋友 帮忙! 大家进!!
- 白天在学校,晚上在外面,如何搞开发?能不能把proj上传到通用的服务器上?能不能使用类似vss之类的 工具?
===
10个数字的某一个 + 其余9个数字的组合然后递归下去,就是这样。temp.remove() 会返回被移出的那个对象