import
java.util.*;
import
java.util.Map.Entry;
class
GFG {
public
static
void
printOccurrences(List<String> arr,
int
N) {
Map<Character, List<Pair<Integer, Integer>>> mp =
new
HashMap<>();
for
(
int
i =
0
; i < N; i++)
{
for
(
int
j =
0
; j < arr.get(i).length(); j++)
{
if
(!mp.containsKey(arr.get(i).charAt(j))) {
mp.put(arr.get(i).charAt(j),
new
ArrayList<>());
}
mp.get(arr.get(i).charAt(j)).add(
new
Pair<>(i +
1
, j +
1
));
}
}
for
(Entry<Character, List<Pair<Integer, Integer>>> it : mp.entrySet()) {
System.out.print(
"Occurrences of: "
+ it.getKey() +
" = "
);
for
(
int
j =
0
; j < it.getValue().size(); j++) {
System.out.print(
"["
+ it.getValue().get(j).getKey() +
" "
+ it.getValue().get(j).getValue() +
"] "
);
}
System.out.println();
}
}
public
static
void
main(String[] args)
{
List<String> arr = Arrays.asList(
"geeksforgeeks"
,
"gfg"
);
int
N = arr.size();
printOccurrences(arr, N);
}
}
class
Pair<T, U> {
private
T key;
private
U value;
public
Pair(T key, U value) {
this
.key = key;
this
.value = value;
}
public
T getKey() {
return
key;
}
public
U getValue() {
return
value;
}
}