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的是什么?不知道我解释清楚了没有,或都哪位朋友能解释一下流程,谢谢!