1 / 14

Arrays

Arrays. Wellesley College CS230 Lecture 02 Thursday, February 1 Handout #9. Reading: Downey: Chapter 10 Problem Set: Assignment #1 due Tuesday, February 13. 0. 1. 3. 2. 4. 9. 7. 8. 1. 6. Array Operations. int[]. a.

yanka
Download Presentation

Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arrays Wellesley College CS230 Lecture 02 Thursday, February 1 Handout #9 Reading: Downey: Chapter 10 Problem Set: Assignment #1 due Tuesday, February 13

  2. 0 1 3 2 4 9 7 8 1 6 Array Operations int[] a Java arrays are homogeneous: all slots must contain the same kind of element. E.g., an array with type int[] is an array of integers. Java arrays are fixed length: a.length→ 5 Get the contents of a slot via a[index] (“a sub index”):a[0] → 9, a[4] → 6, a[5] →ArrayIndexOutOfBoundsException Set the contents of a slot via a[index]= expression;a[0] = 2; a[1] = a[2] + a[3]; a[i]++ means a[i] = a[i] + 1; and a[i]-- means a[i] = a[i] – 1; Create an integer array with num slots via new int[num]:int [] a = new int[5]; // All slots contain 0 by defaulta[0]=9; a[1]=7; … ; a[4]=6;Shorthands: int [] a = new int[] {9,7,1,8,6}; int [] a = {9,7,1,8,6};

  3. 2 0 0 1 0 3 1 2 2 4 1 ‘0’ ‘c’ ‘3’ ‘2’ ‘s’ 3 2 2 1 1 0 0 false true false false false false true Arrays Elements can be of Any Type boolean[] b1 = new boolean[4]; boolean[] b2 = {true,false,true}; boolean[] boolean[] b1 b2 char[] char[] c = {’c’,’s’,’2’,’3’,’0’}; c String[] s1 = new String[3]; String[] s2 = {“I”, “am” “Sam”}; String[] String[] s2 s1 “I” “am” “Sam”

  4. 2 1 2 4 0 3 1 0 1 1 3 1 1 3 2 2 3 2 5 4 8 0 7 2 6 2 4 3 0 5 3 6 8 1 7 2 Arrays of Arrays An irregular 2-dimensional array A regular 2D array int[][] aa1 = {{9,7,1,8,6}, {4,0}, {}, {5,2,3}}; int[][] aa2 = {{5,2,7,6}, {9,0,8,4}, {7,3,2,5}}; int[][] int[] aa2 0 int[][] int[] 0 9 0 0 5 int[] int[] 1 0 1 aa1 int[] 9 int[] 2 0 2 int[] 7 3 OR int[][] aa2 = new int[3][4]; aa2[0][0] = 5; aa2[0][1] = 2; …

  5. 0 1 2 1 1 3 2 0 4 0 6 7 8 3 1 5 2 4 Arrays Diagrams Illustrate Sharing int[][] int[] 0 aa1[3] = aa1[0]; aa1[0][2] = aa1[0][3] + aa1[0][4]; aa1[3][0] = aa1[3][1] + aa1[3][2]; System.out.println(aa1[3][0]); 0 9 int[] 1 aa1 int[] 2 int[] 3

  6. 0 1 3 2 4 9 7 8 1 6 A Simple Array Iteration: Summation int[] Iteration Table nums Want IntArray.sum(nums)→ 31 // Assume this is in the class IntArraypublic static int sum (int [] a) { }

  7. 0 1 3 2 4 9 7 8 1 6 What does mystery() do? int[] nums IntArray.mystery(nums)→ ??? // Assume this is in the class IntArray public static String mystery (int [] a) { if (a.length == 0) // The empty array is a special case return "{}"; else { String result = "{" + a[0]; for (int i = 1; i < a.length; i++) { // Why is the first index 1, not 0? result = result + "," + a[i]; } return result + "}"; } }

  8. Testing sum(): Approach 1 Suppose we want java IntArray sum to give the following output:sum({9,7,1,8,6}) = 31 sum({4,0}) = 4 sum({}) = 0 sum({5,2,3}) = 10 // Assume this is in the class IntArray public static void testSum (int [] a) { System.out.println("sum(" + toString(a) + ") = " + sum(a)); } public static void main (String [] args) { if (args.length == 1) { if (args[0].equals(“sum”)) { testSum(new int[] {9,7,1,8,6}); testSum(new int[] {4,0}); testSum(new int[] {}); testSum(new int[] {5,2,3}); } else … // Testing of other methods goes here } else System.out.println(“usage: IntArray <name>”); }

  9. Testing sum(): Approach 2 public static void main (String [] args) { int[][] arrays = {{9,7,1,8,6}, {4,0}, {}, {5,2,3}}; if (args.length == 1) { if (args[0].equals(“sum”)) { } else … // Testing of other methods goes here } else System.out.println(“usage: IntArray <name>”); }

  10. Testing sum(): Approach 3 Suppose we want java IntArray sum 8 17 1 22 6 to give the following output:sum({8,17,1,22,6}) = 54 // Assume this is in the class IntArray// Returns an integer array based on strings in strs[1..(strs.length-1)] public static int[] makeIntArray (String[] strs) { } public static void main (String [] args) { if (args.length >= 1) { // Use >= to allow extra arguments if (args[0].equals(“sum”)) { testSum(makeIntArray(args)); } else … // Testing of other methods goes here } else System.out.println(“usage: IntArray <name> <int1> … <intn> ”); }

  11. 4 0 1 0 3 3 2 4 1 2 8 7 9 7 8 1 6 1 9 6 Array Reversal int[] Before: nums IntArray.reverse(nums); int[] After: nums // Assume this is in the class IntArraypublic static void reverse (int [] a) { }

  12. 3 3 1 2 0 2 4 0 0 1 3 2 4 1 4 7 6 7 9 1 6 8 7 1 9 8 1 9 6 8 Copying Array Reversal int[] Before: nums int[] c = IntArray.copyReverse(nums); After: int[] int[] nums c // Assume this is in the class IntArraypublic static int[] copyReverse (int [] a) { }

  13. 2 1 1 3 2 2 1 3 3 3 2 6 7 2 8 0 4 5 Column Summation int[][] int[] Want IntArray.sumColumns(aa2) → {21, 5, 17, 15} (assume input is a regular 2D array) 0 0 5 int[] 0 aa2 1 9 int[] 0 2 7

  14. 3 1 2 3 1 2 3 0 0 1 1 0 4 0 3 3 2 4 2 4 0 4 4 2 1 1 6 7 1 9 1 6 7 8 9 1 8 7 9 6 9 1 9 6 6 8 8 7 8 7 Insertion Sort

More Related