Java 查找给定ArrayList的所有可能置换<;字符串>;,并将它们存储在全局变量中
在下面给出的代码中,我在函数Java 查找给定ArrayList的所有可能置换<;字符串>;,并将它们存储在全局变量中,java,arraylist,global-variables,hashset,recursive-backtracking,Java,Arraylist,Global Variables,Hashset,Recursive Backtracking,在下面给出的代码中,我在函数permute中添加了ArrayList的特定排列,但在main函数中打印时,不会打印所有可能的排列。相反,相同的ArrayList会被打印出来!n是给定数组列表的长度的次数 我正在将set(我的全局变量)中的排列添加到permute函数中作为set。添加(名称),但在main函数中打印时,它会将输出作为同一个未安排的排列列表 import java.util.*; 公开课Q1{ 静态集合=新的HashSet(); 公共静态void main(字符串参数[]){ in
permute
中添加了ArrayList
的特定排列,但在main
函数中打印时,不会打印所有可能的排列。相反,相同的ArrayList
会被打印出来!n是给定数组列表的长度的次数
我正在将set
(我的全局变量)中的排列添加到permute
函数中作为set。添加(名称)
,但在main
函数中打印时,它会将输出作为同一个未安排的排列列表
import java.util.*;
公开课Q1{
静态集合=新的HashSet();
公共静态void main(字符串参数[]){
int n;
扫描仪输入=新扫描仪(系统输入);
n=in.nextInt();
ArrayList name=新的ArrayList();
对于(int i=0;i您正在将同一对象的名称
重复添加到集合
。但是您需要添加名称的副本
set.add((ArrayList<String>)names);
set.add((ArrayList)名称);
→
set.add(新数组列表(名称));
set.add(new ArrayList<>(names));