import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Map;
public
class
PairNums {
public
static
List<Map.Entry<Integer, Integer>> pairNums(List<Integer> nums) {
Map<Integer, Integer> freq =
new
HashMap<>();
for
(
int
i =
0
; i < nums.size(); i++) {
int
num = nums.get(i);
freq.put(num, freq.getOrDefault(num,
0
) +
1
);
}
List<Map.Entry<Integer, Integer>> pairs =
new
ArrayList<>();
for
(
int
i =
0
; i < nums.size(); i++) {
int
num2 = nums.get(i);
if
(freq.get(num2) >
0
) {
int
matchingNum = -
1
;
for
(
int
j = i +
1
; j < nums.size(); j++) {
if
(nums.get(j) == num2) {
matchingNum = j;
break
;
}
}
if
(matchingNum != -
1
) {
pairs.add(Map.entry(i, matchingNum));
freq.put(num2, freq.get(num2) -
2
);
}
}
}
return
pairs;
}
public
static
void
main(String[] args) {
List<Integer> nums =
new
ArrayList<>();
nums.add(
2
);
nums.add(
1
);
nums.add(
2
);
nums.add(
3
);
nums.add(
1
);
nums.add(
3
);
List<Map.Entry<Integer, Integer>> pairs = pairNums(nums);
for
(
int
i =
0
; i < pairs.size(); i++) {
System.out.println(
"Pair "
+ (i +
1
) +
": "
+ pairs.get(i).getKey() +
" "
+ pairs.get(i).getValue());
}
}
}