給定一個數組,從數組中打印出所有非重複和非相同排列對。數組不包含重複的元素。 如:從一個數組中打印對的唯一排列
String[] array = {"Cheese", "Pepperoni", "Black Olives", "Chicken"}
期望輸出示例:
- 奶酪,辣
- 奶酪,黑橄欖
- 奶酪,雞肉
- 黑橄欖,辣 ...
I NVALID:
- 奶酪,奶酪
- 奶酪,辣
辣,奶酪
只有1雙輸入。 [奶酪,意大利辣香腸]或[意大利辣香腸,奶酪]
private Map<Integer, List<String>> getPairs(String[] array) {
Map<Integer, List<String>> map = new HashMap<>();
int count = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length; j++) {
if (i == j)
continue;
ArrayList<String> list = new ArrayList<>();
list.add(array[i]);
list.add(array[j]);
map.put(count, list);
++count;
}
}
// System.out.println(map);
return map;
}
我的代碼打印出重複項。你能幫忙嗎?
@HovercraftFullOfEels加入實現。但我沒有得到它的工作。這不是一項功課。 –
注意:'count == map.size()'在內循環之前和之後,所以'count'是多餘的。此外,由「元素索引」鍵控的地圖可能更簡單一些,就像List一樣:你仍然可以訪問第i個元素。 –
該輸出是*期望*輸出還是*實際*輸出?無論如何,請提供另一個。在給定的輸出中沒有重複。 –