0

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
4

1 回答 1

1

从 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
于 2019-12-31T06:54:56.650 回答