以相同顺序为 2 组或更多组字符串生成所有可能的键
Generate all possible keys for 2 or more sets of strings in same order
有 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
有 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