Skip to main content
Hi, I want to redefine and remove nested for loop and fix couple of issues with below code,

My Method:

------------

public void buildQueueInfo(List<Group> queues, Map<Id, List<GroupMember>> queueIdToMembersMap, List<User> allUsers, Map<Id, User> userMap) {

        for (Group queue : queues) {

            List<GroupMember> gmList = new List<GroupMember>();

            gmList = queueIdToMembersMap.get(queue.Id);

            List<User> nonUsers = new List<User>();

            for (User u : allUsers) {

                Boolean notAMember = true;

                if (gmList != null) {

                    for (GroupMember gm : gmList) {

                        if (u.Id == gm.UserOrGroupId) {

                            notAMember = false;

                        }

                    }

                }

                if (notAMember) {

                    nonUsers.add(u);

                }

            }

            populateQueueInfo(queue, gmList, nonUsers, userMap);

            //To Reduce heap size

            queues=null;

            //allUsers=null;

            gmList=null;

        }

        

    }

your help in this regrads would be greatly appreciates.

Thanks!!

Jagadeesh. M
4 respostas
  1. 11 de jan. de 2021, 05:22

    Hi Jagadeesh,

    You already have Queue which is coming from 'buildQueueInfo()'. Therefore you can pass it to "populatedQueueInfo()".  Please let me know if this answers your question or where exactly you need help.

    Thanks,

    Sucharita
0/9000