The goal is to invert 2 elements of a List. Like if I have
List<Integer> integers = new List<Integers>{1,2,3,4,5,6,7};
If I call this method:
invert(List: integers, index1: 2, index2: 3);
It should return me:
List<Integer>{1,2,4,3,5,6,7};
I'm trying to use the .set() method, but seems like I've written it in a bad way. The code is the following:
public static List<Integer> invert(List<Integer> integers, Integer index1, Integer index2)
{
for(Integer counter = 0; counter < integers.size(); counter++)
{
if(integers.indexOf(counter) == integers.indexOf(index1))
{
integers.set(index1, integers[index2]);
}
else if(integers.indexOf(counter) == integers.indexOf(index2))
{
integers.set(index2, integers[index1]);
}
else
{
return null;
}
}
return integers;
}
I'm not getting any kind of error and this method return the same list that I've initialized in the test class before calling the method. So I think it is not executing the .set() function, but I don't know why. Can someone explain and suggest me a possible solution?
Thank you so much in advance for your help.