import
java.util.HashMap;
import
java.util.Map;
public
class
GFG {
static
int
findMaxAverageMarks(Map<String, String>[] A)
{
int
maxAvg = Integer.MIN_VALUE;
if
(A.length ==
0
)
return
0
;
Map<String, Pair<Integer, Integer> > map
=
new
HashMap<>();
for
(Map<String, String> currentStudent : A) {
String studentName
= currentStudent.get(
"first"
);
int
marks = Integer.parseInt(
currentStudent.get(
"second"
));
if
(!map.containsKey(studentName)) {
map.put(studentName,
new
Pair<>(
0
,
0
));
}
Pair<Integer, Integer> pair
= map.get(studentName);
pair.first += marks;
pair.second +=
1
;
}
for
(Map.Entry<String, Pair<Integer, Integer> >
entry : map.entrySet()) {
double
totalScore = entry.getValue().first;
int
count = entry.getValue().second;
maxAvg = Math.max(maxAvg,
(
int
)(totalScore / count));
}
return
maxAvg;
}
public
static
void
main(String[] args)
{
Map<String, String>[] A =
new
Map[] {
Map.of(
"first"
,
"Bob"
,
"second"
,
"87"
),
Map.of(
"first"
,
"Mike"
,
"second"
,
"35"
),
Map.of(
"first"
,
"Bob"
,
"second"
,
"52"
),
Map.of(
"first"
,
"Jason"
,
"second"
,
"35"
),
Map.of(
"first"
,
"Mike"
,
"second"
,
"55"
),
Map.of(
"first"
,
"Jessica"
,
"second"
,
"99"
)
};
System.out.println(findMaxAverageMarks(A));
}
static
class
Pair<A, B> {
A first;
B second;
Pair(A first, B second)
{
this
.first = first;
this
.second = second;
}
}
}