假设我有一个包含5个元素的字符串数组,我想遍历数组,以便我有元素[0]和元素[1]到元素[0]和元素[4]。
然后我想从元素[1]开始,对每个元素做同样的事情,但是丢弃任何匹配的分组。
例如arr[] {a,b,c,d,e}
(a-b),(a-c),(a-d),(a-e)
然后
(b-c),(b,d),(b,e)
然后
(c-d),),(c-e)
然后
(d-e)
由于
答案 0 :(得分:2)
这样的事可能适合你:
List<String[]> result = new ArrayList<>();
String[] arr = {"a", "b", "c", "d", "e"};
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
result.add(new String[]{arr[i], arr[j]});
}
}
将“字符串数组”添加到列表中的“collect”部分(即result.add(...)
)显然可以替换为代码所需的任何内容。这里的主要内容是您使用arr[i]
和arr[j]
找到了“对”。
答案 1 :(得分:0)
您应该用数组的长度替换5
:
for (i=0; i<arr.length; i++)
for (j=i+1; j<arr.length; j++)
// arr[i] & arr[j]
答案 2 :(得分:0)
String[] strings = {"a","b","c","d","e"};
int j = 0;
while (j < strings.length){
int k = j + 1;
while (k < strings.length){
// if String array element j does not match with String array element k, do something like print the combiations or whatever you choose.
if (!(strings[j].equals(strings[k]))) System.out.println("(" + strings[j] + "," + strings[k] + ")");
k = k + 1;
}
j = j + 1;
}