以相同的顺序为 2 组或更多组字符串生成所有可能的键



N 个集合,每个集合中都有M值。如何有效地按照给定的集合顺序生成所有可能的组合?

SetA = {'A', 'B'}
SetB = {'x', 'Y'}
SetC = {'L', 'M'}

键顺序=SetA_SetB_SetC

输出:

A_X_L, A_X_M, A_Y_L, A_Y_M, B_X_L, B_X_M, B_Y_L, B_Y_M

从 Java-8 开始使用 #Stream API,我已经实现了以下代码:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class CandidateCode {
public static void main(String[] args) {
List<String> ListA = Arrays.asList("A", "B");
List<String> ListX = Arrays.asList("X", "Y");
List<String> ListL = Arrays.asList("L", "M");
List<String> collect = ListA.stream().flatMap(a -> ListX.stream().flatMap(x -> ListL.stream().map(l -> a + "_" + x + "_" + l))).collect(Collectors.toList());
collect.forEach(System.out::println);
}
}

输出:

A_X_L
A_X_M
A_Y_L
A_Y_M
B_X_L
B_X_M
B_Y_L
B_Y_M

相关内容

最新更新