gpt4 book ai didi

java - 如何按指定大小获取数组列表中字符串的所有排列

转载 作者:行者123 更新时间:2023-12-01 12:57:11 26 4
gpt4 key购买 nike

我正在尝试获取包含两个单词的java数组列表中字符串(单词)的所有排列。以下是我尝试过的代码,但我没有获取列表中单词的所有排列。

for (int y = 0; y<newList.size(); y++){

String first = newList.get(y);
String second = "";

if(y+1<newList.size()){
second = newList.get(y+1);
}

ArrayList<String> tmpArr = new ArrayList<String>();
tmpArr.add(first);
tmpArr.add(second);

ArrayList<String> retArray = combine(tmpArr);
for (int c = 0; c <retArray.size(); c++) {
System.out.println(retArray.get(c));
}
}

public static ArrayList<String> combine(ArrayList<String> arr){
ArrayList<String> retArr = new ArrayList<String>();
if(arr.size()==0){
retArr.add("");
return retArr;
}
ArrayList<String> tmpArr = (ArrayList<String>)arr.clone();
tmpArr.remove(0);

for(String str1 : combine(tmpArr)){
for(String str2 : arr){
retArr.add(str2+","+str1);
if(retArr.size() == 10)
return retArr;
}

}
return retArr;
}

请让我知道如何更正代码以获取大小为 2 的列表中单词的所有排列(以两个单词作为输出的单词的所有排列)

例如如果输入数据如下输入 - [访问、聚会、代表团]

预期输出 -[参观、聚会访问、代表团聚会、参观党、代表团代表团、参观代表团、政党]

电流输出 -[参观、聚会、聚会,聚会,党、代表团、授权,授权,]

最佳答案

这将为您提供单词列表的所有两个单词的排列。

List<String> strings = Arrays.asList("party","visit","delegation");

for (int i = 0; i < strings.size(); i++){
for (int j = 0; j < strings.size(); j++){
if (i != j) System.out.println(strings.get(i) + "," + strings.get(j));
}
}

编辑:添加了 if 语句并更改了循环,因为您还需要不同顺序的排列。

关于java - 如何按指定大小获取数组列表中字符串的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23779450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com