不知道是static方法用错了 还是 list有问题
list里面可以有重复的数据 为什么不用set ,你强转list为set试下
PrintOut()里面的print(list);
语句去掉啊。
你加一个次结果就把现有列表全部输出一次,什么意思!?
print(list); 去掉以后:
结果就变成 全是3 4 5 了
public static void main(String[] args) {
String[] n ={"1","2","3","4"};
int length = 3;
List lst = Arrays.asList(n);
parse("",length,lst);
System.out.println(all + " - kinds");
}
public static void parse(String s, int total, List<String> lst) {
for (int i = 0; i < lst.size(); i++) {
List<String> templst=new LinkedList<String>(lst);
String n = templst.remove(i);
String str = s + n;
if (total == 1) {
System.out.println("index " + all + " : " + str);
all++;
} else {
int temp=total-1;
parse(str, temp, templst);
}
}
}
把list放set里面再拿出来就没有重复的数据了
因为list 添加的元素 都是指向一个地址