I have a match table in my app which holds the details of the matches scheduled
I have a user table & a user_match table which is a bridge table.
user_match table below specifies info on which user follows which match & supports which team.

Now in my controller method I am returning today's scheduled matches & also check at the same time if the loggedIn user follows the today's scheduled matches.
The problem is I have to run two nested for loops in the process Complexity O(n^2). First I iterate through the current day matches & then for every current day match I iterate through all the matches the user follows & check if the current match is present. I was hoping if I could get rid of the nested for loop, could there be a better way to deal with this.
@RequestMapping(value="/getTodaysMatches", method=RequestMethod.GET, consumes = "application/json", produces = "application/json")
public @ResponseBody List<Match> getMatchesForCurrentDate(){
logger.debug("inside /getTodaysMatches CricketController method");
DateTime currentServerTimeStamp = CricketUtil.getServerDateTime();
List<Match> currentDayMatchList = this.cricketService.fetchMatchesForInputDate(currentServerTimeStamp);
CustomUserDetail myUserDetails = currentUserAccessor.getCurrentLoggedInUser();
User loggedInUser = myUserDetails.getUser();
List<UserMatchInfo> userMatchInfoList = this.cricketService.getUserMatchInfoByUserId(loggedInUser.getUserId());
/*check if the logged in user already follows matches scheduled for today*/
for(Match todaysMatch : currentDayMatchList){
for(UserMatchInfo tmpUserMatchInfo : userMatchInfoList){
String teamFollowedByUser = tmpUserMatchInfo.getSupportingTeam();
Match matchWhichUserFollows = tmpUserMatchInfo.getMatch();
if((matchWhichUserFollows.getMatchId().intValue()) == (todaysMatch.getMatchId().intValue())){
todaysMatch.setLoggedInUserFollowsThisMatch(true);
}
if((todaysMatch.getTeamOne().equals(teamFollowedByUser))){
todaysMatch.setLoggedInUserSupportsTeamOne(true);
}
if((todaysMatch.getTeamTwo().equals(teamFollowedByUser))){
todaysMatch.setLoggedInUserSupportsTeamTwo(true);
}
}
}
return currentDayMatchList;
}
