我有一个名为listTeams的列表,其中包含字符串。我需要生成这些字符串的所有唯一组合,并将它们存储在另一个名为lines的ArrayList中。我尝试了以下方法,但结果并不理想:

for(int i=0; i<listTeams.size();i++){
    for(int j=1;j<listTeams.size();j++){
       if (listTeams.get(j).equals(listTeams.get(i)))
                    continue;

           for(int k=2;k<listTeams.size();k++){

                if (listTeams.get(k).equals(listTeams.get(i)) || listTeams.get(k).equals(listTeams.get(j)))
                    continue;
                String str = listTeams.get(i)+listTeams.get(j)+listTeams.get(k);
                lines.put(str,new ArrayList<String>());
                }
             }
           }


这是原始列​​表:{“ A”,“ B”,“ C”,“ D”}
我得到的是

a_b_c
a_b_d
a_c_d
a_d_c
b_c_d
b_d_c
c_b_d
d_b_c


我想要的是:

a_b_c
a_b_d
a_c_d
b_c_d

最佳答案

for(int i=0; i<listTeams.size();i++){
    for(int j=i+1;j<listTeams.size();j++){
           for(int k=j+1;k<listTeams.size();k++){
                String str = listTeams.get(i)+listTeams.get(j)+listTeams.get(k);
                lines.put(str,new ArrayList<String>());
                }
             }
           }

10-04 11:03