Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Swap
Index -> Programming, Java -> Java Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
dchini




PostPosted: Sun Oct 26, 2008 8:18 pm   Post subject: Swap

I am puzzled with this code....

code:
class Funcs
{
public static void swap(Object a, Object b)
{
                Object temp = a;
                a = b;
               b = temp;
        }
   
public static void main(String[] args)
{
                String x= "hello";
                String y = "goodbye";
                System.out.println(x);
                System.out.println(y);
                swap(x,y);
                System.out.println(x);
                System.out.println(y);
        }   
}


It prints

hello
goodbye
hello
goodbye



I thought it should have printed

hello
goodbye
goodbye
hello
Sponsor
Sponsor
Sponsor
sponsor
OneOffDriveByPoster




PostPosted: Sun Oct 26, 2008 8:45 pm   Post subject: Re: Swap

Java passes references by value. If you change what your function parameters refer to in a function, the change does not get reflected in the caller.
A.J




PostPosted: Sun Oct 26, 2008 10:03 pm   Post subject: Re: Swap

I think what u shud do is do the swapping in the main body instead of creating a separate function to do it for u.
Saad




PostPosted: Sun Oct 26, 2008 10:07 pm   Post subject: Re: Swap

A.J @ Sun Oct 26, 2008 10:03 pm wrote:
I think what u shud do is do the swapping in the main body instead of creating a separate function to do it for u.


But what happens in the case you want to swap a lot of things? Clearly you don't want to be copy/pasting the same code if you can make it a function.
rdrake




PostPosted: Sun Oct 26, 2008 11:26 pm   Post subject: RE:Swap

Aren't strings in Java immutable?
OneOffDriveByPoster




PostPosted: Mon Oct 27, 2008 8:35 am   Post subject: Re: Swap

Saad @ Sun Oct 26, 2008 10:07 pm wrote:
A.J @ Sun Oct 26, 2008 10:03 pm wrote:
I think what u shud do is do the swapping in the main body instead of creating a separate function to do it for u.
But what happens in the case you want to swap a lot of things? Clearly you don't want to be copy/pasting the same code if you can make it a function.
For the sake of the OP:
If you are swapping a lot, you are more than likely to be swapping array elements or elements in a container. That is entirely possible to do in a helper function.
Hint: pass the array/container in with the indices/keys.
Display posts from previous:   
   Index -> Programming, Java -> Java Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 6 Posts ]
Jump to:   


Style:  
Search: