【发布时间】:2017-12-26 15:57:25
【问题描述】:
我有以下一堆数组:
public class ArrayPermutationExample {
private static final String PREFIX = "ignore(FAILURE) { build(\"load\", ";
public static final String ENDING = ")}";
private static String[] arr_1 = new String[] {
"111",
"222",
"333"};
private static String[] arr_2 = new String[]{
"aaa",
"bbb",
"ccc"};
private static String[] arr_3 = new String[] {
"***",
"&&&",
"$$$"};
我需要找到与其他数组的排列,不包括原生数组。
输出应如下所示:
111aaa
111bbb
111ccc
111***
111&&&
111$$$
222aaa
222bbb
222ccc
...
333aaa
333bbb
333ccc
...
最后,对于所有这些排列,应添加prefix 和ending:
prefix排列字符串endings
最后我们应该有这样的东西:
忽略(失败){构建(“加载”,111aaa)}
我完全坚持这个任务的解决方案:
private static void processArrays(String[] ... arrays) {
ArrayList<String> result = new ArrayList<>();
for (String[] array : arrays) {
String[] currentArray = array;
for (String line : currentArray) {
// exclude all lines from current array & make concatenation with every line from others
}
}
}
如何解决这个问题?
更新:
最后我想补充一点,我们需要有一个没有任何重复的独特列表。甚至下面的例子也会互相重复:
111aaa***
***111aaa
我相信这个任务应该有一个Java 8风格的解决方案。
【问题讨论】:
-
我可以知道投反对票的原因吗?
-
乍一看你的例子看起来很复杂,你能提供一个更小的例子吗?将更容易阅读并全面了解您的问题。
-
@Zabuza 我更新了问题
-
现在好多了,谢谢 :) 仅使用现有的 permutation builder (SO 有多种解决方案)并稍微修改一下,问题在哪里?我认为这也有助于理解如何解决这个问题,首先看看你会如何做。
-
@Zabuza 我想知道如何使用 Java 8 风格来解决这个问题。
标签: java arrays algorithm concatenation permutation