gpt4 book ai didi

java - 动态创建循环以遍历 List 的列表

转载 作者:行者123 更新时间:2023-11-30 05:55:54 25 4
gpt4 key购买 nike

我有一个 ListList<String>是我从外部 API 方法调用中获得的:

List<List<String>> outerList

我必须通过按照它们在外部列表中的相同顺序连接每个列表中的字符串来创建唯一的组合键。

示例:如果外部列表有 2 个内部列表,比如列表 1:{"A","B"} 和列表 2:{"C","D"}。那么可能的唯一组合将是 AC、AD、BC 和 BD。

但问题是outerList大小是动态的,它可以包含任意数量的内部列表。如果内部列表编号是固定的,那么我可以编写 for 循环并创建组合。

我正在考虑使用反射、递归等方向,但到目前为止还没有解决。

public static void main(String[] args) {

List<List<String>> outerList = new ArrayList<List<String>>();
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();

list2.add("C");
list2.add("D");
outerList.add(list1);

outerList.add(list2);

for(String s1: list1) {
for(String s2: list2) {
System.out.println(s1+s2);
}
}
}

在这里outerList有 2 个内部列表,所以我创建了 2 个 for 循环来明确地迭代和连接。但是实时outerList可以有任意数量的inner list,如何动态循环遍历所有的inner循环并拼接?

最佳答案

这段代码对我有用:

public class Test
{

public static void generate(LinkedList<LinkedList<String>> outerList, String outPut) {
LinkedList<String> list = outerList.get(0);

for(String str : list) {
LinkedList<LinkedList<String>> newOuter = new LinkedList<LinkedList<String>>(outerList);
newOuter.remove(list);

if(outerList.size() > 1) {
generate(newOuter, outPut+str);
} else {
System.out.println(outPut+str);
}
}
}

public static void main(String[] args)
{
LinkedList<LinkedList<String>> outerList = new LinkedList<LinkedList<String>>();

LinkedList<String> list1 = new LinkedList<String>();
LinkedList<String> list2 = new LinkedList<String>();

list1.add("A");
list1.add("B");

list2.add("C");
list2.add("D");

outerList.add(list1);
outerList.add(list2);

Test.generate(outerList, "");
}
}

输出:

AC
AD
BC
BD

关于java - 动态创建循环以遍历 List<String> 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698008/

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