Search code examples
c#javaarraysint

How to reinitialize the int array in java


class PassingRefByVal 
{
    static void Change(int[] pArray)
    {
        pArray[0] = 888;  // This change affects the original element.
        pArray = new int[5] {-3, -1, -2, -3, -4};   // This change is local.
        System.Console.WriteLine("Inside the method, the first element is: {0}", pArray[0]);
    }

    static void Main() 
    {
        int[] arr = {1, 4, 5};
        System.Console.WriteLine("Inside Main, before calling the method, the first element is: {0}", arr [0]);

        Change(arr);
        System.Console.WriteLine("Inside Main, after calling the method, the first element is: {0}", arr [0]);
    }
}

I have to convert this c# program into java language. But this line confuse me

pArray = new int[5] {-3, -1, -2, -3, -4}; // This change is local.

How can i reinitialize the java int array? Thanks for help.


Solution

  • pArray = new int[] {-3, -1, -2, -3, -4};
    

    i.e., no need to specify the initial size - the compiler can count the items inside the curly brackets.

    Also, have in mind that as java passed by value, your array won't 'change'. You have to return the new array.