Unformatted text preview:

ArraysA problem with simple variablesMultiple valuesIndexing into arraysUsing array elementsArray valuesStrings and arraysTwo ways to declare arraysImportant jargonAn array’s size is not part of its typeArray assignmentExample of array use IExample of array use IIExample of array use IIIVariable namesLength of an arrayMagic numbersInitializing arrays IInitializing arrays IIArray literalsArrays of arraysExample array of arraysSize of 2D arraysThe EndArraysA problem with simple variables•One variable holds one value–The value may change over time, but at any given time, a variable holds a single value•If you want to keep track of many values, you need many variables•All of these variables need to have names•What if you need to keep track of hundreds or thousands of values?Multiple values•An array lets you associate one name with a fixed (but possibly large) number of values•All values must have the same type•The values are distinguished by a numerical index between 0 and array size minus 112 43 6 83 14 -57 109 12 0 6 0 1 2 3 4 5 6 7 8 9myArrayIndexing into arrays•To reference a single array element, use array-name [ index ]•Indexed elements can be used just like simple variables–You can access their values–You can modify their values•An array index is sometimes called a subscriptUsing array elements•Examples:• x = myArray[1]; // sets x to 43• myArray[4] = 99; // replaces 14 with 99• m = 5; y = myArray[m]; // sets y to -57• z = myArray[myArray[9]]; // sets z to 10912 43 6 83 14 -57 109 12 0 6 0 1 2 3 4 5 6 7 8 9myArrayArray values•An array may hold any type of value, but...–all values in an array must be the same type, and...–you must specify that type when you declare the array•For example, you can have:–an array of int (integers)–an array of Strings (String is a built-in class)–an array of Person (if Person is a class you have defined)–an array of arrays of StringsStrings and arrays•Strings and arrays both have special syntax•Strings are objects, and can be used as objects•Arrays are objects, but–Arrays are created using special syntax:new type[size] instead of new Person()–If an array holds elements of type T, then the array’s type is “array of T”Two ways to declare arrays•You can declare more than one array variable in the same declaration: int a[ ], b, c[ ], d; // notice position of brackets•a and c are int arrays•b and d are just ints•Another syntax: int[ ] a, b, c, d; // notice position of brackets•a, b, c and d are int arrays –When the brackets come before the first variable, they apply to all variables in the list–This is the preferred syntax, because the type, int[ ], is written together in one placeImportant jargon•When you declare an array variable (for example,int[ ] scores;) you are saying what kind of array the variable can hold, but you haven’t actually created the array –Analogy: it’s like creating a new position in a company, but not yet having hired someone to fill that position•You create an array with the new operator, for example, new int[25]•You define the variable by assigning an actual value to it, for example, scores = new int[25];•You can combine declaration and definition in a single statement, for example, int[ ] scores = new int[25];An array’s size is not part of its type•When you declare an array, you declare its type; you must not specify its size–Example: String names[ ];•When you create the array, you allocate space; you must specify its size–Example: names = new String[50];•This is true even when the two are combined–Example: String names[ ] = new String[50];Array assignment•When you assign an array value to an array variable, the types must be compatible•The following is not legal: double dub[ ] = new int[10]; // illegal•The following is legal: int myArray[ ] = new int[10];–...and later in the program, myArray = new int[500]; // legal!–Legal because array size is not part of its typeExample of array use I•Suppose you want to find the largest value in an array scores of 10 integers: int largestScore = 0; for (int i = 0; i < 10; i++) { if (scores[i] > largestScore) { largestScore = scores[i]; } }•By the way, do you see an error in the above program?–What if all values in the array are negative?Example of array use II•To find the largest value in an array scores of 10 (possibly negative) integers: int largestScore = scores[0]; for (int i = 1; i < 10; i++) { if (scores[i] > largestScore) { largestScore = scores[i]; } }Example of array use III•Suppose you want to find the largest value in an array scores and the location in which you found that value: int largestScore = scores[0]; int index = 0; for (int i = 1; i < 10; i++) { if (scores[i] > largestScore) { largestScore = scores[i]; index = i;} }Variable names•Use the following style rules for variable names:–Use nouns to name variables: total, size, position–Start with a lowercase letter: result, not Result–Capitalize the first letter of each additional word in a multiword name: sumOfDigits, dateOfLastEntry, totalValue–Don’t use underscores: sumOfDigits, not sum_of_digits–Capitalize no more than the first letter of acronyms: lastUrl, not lastURL; asciiValue, not ASCIIValue–Don’t abbreviate: sumOfDigits, not sumDig; employees, not emps•Array names should be plural nouns: scores, employees checkbookEntries, vectorComponents –This is particularly true when the individual entries have meaning independent of one another–Exception: When only the entire collection has meaning: forceVector, matrix, pascalsTriangleLength of an array•Arrays are objects•Every array has an instance constant, length, that tells how large the array is•Example: for (int i = 0; i < scores.length; i++) { System.out.println(scores[i]); }•Use of length is always preferred over using a constant such as 10Magic numbers•Use names instead of numbers in your code–Names help document the code; numbers don’t–It may be hard to tell why a particular number is used--we call it a magic number•This is a pejorative term–You might change your name about the value of a “constant” (say, more than ten scores)•You can change the value of a name in one place–An array’s length is always correct!Initializing arrays I•Here’s one way to initialize an array of


View Full Document

Penn CIS 121 - Arrays

Download Arrays
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Arrays and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Arrays 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?