Simulating pass by reference for an array reference (i.e. a reference to a reference) in Java
Posted
by Leif Andersen
on Stack Overflow
See other posts from Stack Overflow
or by Leif Andersen
Published on 2010-03-19T03:13:53Z
Indexed on
2010/03/19
3:41 UTC
Read the original article
Hit count: 437
I was wondering, in java, is it possible to in anyway, simulate pass by reference for an array? Yes, I know the language doesn't support it, but is there anyway I can do it. Say, for example, I want to create a method that reverses the order of all the elements in an array. (I know that this code snippet isn't the best example, as there is a better algorithms to do this, but this is a good example of the type of thing I want to do for more complex problems).
Currently, I need to make a class like this:
public static void reverse(Object[] arr) {
Object[] tmpArr = new Object[arr.length];
count = arr.length - 1;
for(Object i : arr)
tmpArr[count--] = i;
// I would like to do arr = tmpArr, but that will only make the shallow
// reference tmpArr, I would like to actually change the pointer they passed in
// Not just the values in the array, so I have to do this:
count = arr.length - 1;
for(Object i : tmpArr)
arr[count--] = i;
return;
}
Yes, I know that I could just swap the values until I get to the middle, and it would be much more efficient, but for other, more complex purposes, is there anyway that I can manipulate the actual pointer?
Again, thank you.
© Stack Overflow or respective owner