/** * Examples of using an array as a parameter * and as a return type */ public class TryArrayParam { public static void main(String [] args) { // What happens when an int is a parameter? and a return type? int x = 5; System.out.println("x = " + x); System.out.println("\nRunning changeValue(x), not keeping return value"); changeValue(x); System.out.println("after changeValue(x), x = " + x); System.out.println("\nRunning changeValue(x), using return value to replace x"); x = changeValue(x); System.out.println("after x = changeValue(x), x = " + x); // What happens when an array of ints is a parameter? int [] numArray = {1,2,3,4}; System.out.println("\nBefore changeArray():"); for (int i = 0; i < numArray.length; i++) { System.out.print(" numArray[" + i + "] = " + numArray[i]); } System.out.println(); System.out.println("Memory address of numArray = " + numArray); System.out.println("\nRunning changeArray(numArray), not keeping return value"); changeArray(numArray); System.out.println("After changeArray():"); for (int i = 0; i < numArray.length; i++) { System.out.print(" numArray[" + i + "] = " + numArray[i]); } System.out.println(); System.out.println("Memory address of numArray = " + numArray); // How to take an array and change its number of elements numArray = expandArray(numArray); System.out.println("\nAfter expandArray():"); for (int i = 0; i < numArray.length; i++) { System.out.print(" numArray[" + i + "] = " + numArray[i]); } System.out.println(); System.out.println("Memory address of numArray = " + numArray); } // Will this method change the value held in the parameter? public static int changeValue(int num) { num = 8; return num; } // Will this method change the value held in the parameter? public static void changeArray(int [] list) { list[0] = 9; list[1] = 13; list[2] = -4; list[3] = 34; } // How to take an an array and change its size, copying what is there public static int [] expandArray(int [] source) { int [] source2X = new int[source.length * 2]; for (int i = 0; i < source.length; i++) { source2X[i] = source[i]; } for (int i = source.length; i < source2X.length; i++) { source2X[i] = 0; } System.out.println("\nIn expandArray(), memory address of parameter array = " + source); System.out.println("Memory address of bigger array = " + source2X); return source2X; } }