import java.util.Arrays; import java.util.Scanner; import javax.swing.JOptionPane; /** * * @author Bill Kraynek * * COP3337 Example */ public class ArrayExampleWithIncreasedCapUsingMethods { /** * @param args the command line arguments */ public static void main(String[] args) { int[] nums = new int[5]; while (true) { nums = getInputFromUser(nums); if ( nums == null ) break; int sum = 0; String out = ""; for (int i = 0; i < nums.length; i++) { out += nums[i] + " "; sum += nums[i]; }// end for JOptionPane.showMessageDialog(null, "The " + nums.length + " numbers entered are: " + out); JOptionPane.showMessageDialog(null, "Their sum is " + sum); JOptionPane.showMessageDialog(null, "Their average is " + (float) sum / (float) nums.length); // Insert the number 37 at the beginning of the array nums = increaseCapacityByOne(nums); for (int i = nums.length - 2; i > -1; i--) { nums[i + 1] = nums[i]; }// end for nums[0] = 37; // Arrays is a class with methods that work on arrays // Arrays has a toString method so a loop is not necessary out = Arrays.toString(nums); JOptionPane.showMessageDialog(null, "The numbers after 37 was added " + out); // Arrays also has a sort method Arrays.sort(nums); out = Arrays.toString(nums); JOptionPane.showMessageDialog(null, "The " + nums.length + " numbers sorted are: " + out); } // end while }// end main static int[] getInputFromUser(int[] array) { String input = JOptionPane.showInputDialog("Enter numbers separated by spaces\nClick Cancel to quit", "34 77 22 6 8 56 7 33 9 10"); if (input == null) { return null; } // end if Scanner scanner = new Scanner(input); int total = 0; while (scanner.hasNext()) { int aNumber = scanner.nextInt(); if (total == array.length) { array = increaseCapacity(array); } // end if array[total] = aNumber; total++; } // end while int[] save = array; array = new int[total]; for (int i = 0; i < total; i++) { array[i] = save[i]; }// end for return array; } static int[] increaseCapacity(int[] array) { int[] save = array; array = new int[2 * array.length + 1]; for (int i = 0; i < save.length; i++) { array[i] = save[i]; } return array; } static int[] increaseCapacityByOne(int[] array) { int[] save = array; array = new int[array.length + 1]; for (int i = 0; i < save.length; i++) { array[i] = save[i]; } return array; } }