I am trying to build a list from two another list, which is fetched from the database. The list I wanted to build has a few values from List A, And I have to match on value from List B & get the values for List C.
My implementation seems as below, which is not effective when using when each array have 3000+ values, which eventually runs 3000*3000 in each run.
List<userApplicationModel> userApplicationModelList = new ArrayList<>();
AccessTokens.forEach(AccessToken -> {
ConsumerAppList.forEach(ConsumerApp -> {
if (AccessToken.getConsumerKeyID().equals(ConsumerApp.getID())){
userApplicationModelList.add(generateApplicationModel(ConsumerApp,AccessToken)); }
});
});
return userApplicationModelList;
GenerateApplicationModel
private userApplicationModel generateApplicationModel(ConsumerApps consumerApp, AccessToken accessToken) {
userApplicationModel userApplication = new userApplicationModel();
userApplication.setTokenStatus(accessToken.getTokenState());
userApplication.setUserName(consumerApp.getUserName());
return userApplication;
}