Is it possible to store each return of the same http request in an array in jmeter?

In my post processor I have the following code:

if (i as Integer < protocolsArray.length){


          
protocolsArray[i as Integer] = "${requestProtocolId}" ;

}

and it worked, I put the “requestProtocolId” that I got via JsonExtractor in the position of “i”, position of i == 0

but the number of virtual users defined in this http request is greater than one.

so it sends the request again and saves the new “requestProtocolId” again in position zero, overwriting the other protocol,I understand that with the new request it starts all over again, taking the initial values ​​assigned to the variables again, but I’ve already tried incrementing the i (i ++) and returning the new array with the zero position filled in:

vars.putObject("protocolsArray", protocolsArray);

but it always returns the value set before the htpp request, is there a way to change that?

If I changed and put an iteration controller and it was a group of users but in iteration controller “5”, it would be like the same user would send it five times, right?

I wanted to simulate different users, but always keep the “requestProtocolId” value saved in the array positions because I’m going to use it in another request.