java arrays. objectives be able to declare and initialize arrays be able to conceptualize (draw) how...

16
JAVA Arrays

Upload: justina-stevenson

Post on 01-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

JAVAArrays

Page 2: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

Objectives• Be able to declare and initialize arrays• Be able to conceptualize (draw) how arrays are

represented in computer memory.• Be able to process arrays (especially using for loops)• Understand when to use an array

Page 3: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

3

Representing Lists of Objects• Frequently, applications must store lists of objects of the

same type.• Variables represent one object at a time so a list would

require separate variables:String country1, country2, country3;int population1, population2, population3;

• We can represent lists of objects using arrays.

Page 4: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

4

Array Definition Pattern

ElementType[] arrayName;

or

ElementType[] arrayName = new ElementType[length];

or

ElementType[] arrayName = arrayInitializer;

·ElementType is any type (including an array type);·arrayName is the handle for the array object being defined – if there is no assignment clause in the statement, the handle is set to null;

·length is an expression specifying the number of elements in the array;

·arrayInitializer is a list of literals of type ElementType, enclosed in curly braces ({ }).

ElementType[] arrayName;

or

ElementType[] arrayName = new ElementType[length];

or

ElementType[] arrayName = arrayInitializer;

·ElementType is any type (including an array type);·arrayName is the handle for the array object being defined – if there is no assignment clause in the statement, the handle is set to null;

·length is an expression specifying the number of elements in the array;

·arrayInitializer is a list of literals of type ElementType, enclosed in curly braces ({ }).

Page 5: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

5

double[] array1;

final int SIZE = 4;int[] array2 = new int[SIZE];

String[] array3 = { "Bashful", "Doc" };

array2 [0] [1] [2] [3]

? ? ? ?

array1

[0] [1]array3

“Bashful” “Doc”

Array Definitions

Page 6: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

6

String[] anArray = new String[2];anArray[0] = "Grumpy";anArray[1] = "Happy";

println(anArray[1]);

[0] [1]anArray

“Grumpy” “Happy”

Array Subscripts

Page 7: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

7

String[] anArray = new String[2];anArray[0] = "Grumpy";anArray[1] = "Happy";

for (int i = 0; i < anArray.length; i++) { println(anArray[i]);}

[0] [1]anArray

“Grumpy” “Happy”

Working with Arrays

Page 8: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

8

Example: Population by CountryString[] countries = { "Belize", "Costa Rica", "El Salvador", "Guatemala", "Honduras", "Nicaragua", "Panama" };

int[] populations = { 294385, 4133884, 6948073, 12728111, 7483763, 5675356, 3242173 };

for (int i = 0; i < countries.length; i++) { println(countries[i] + ": " +

populations[i]);}

Page 9: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

9

public static int computeTotal(int[] values) { int result = 0; for (int i = 0; i < values.length; i++) { result += values[i]; } return result;}

Arrays as Parameters

Page 10: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

10

public static void main(String[] args) { String[] sa = {"Grumpy", "Happy"}; changeStringArray(sa); System.out.println(sa[0] + ” ” + sa[1]);}public static void changeStringArray

(String[] stringArray) { sa[0] = "Dopey"; sa[1] = "Sleepy"; System.out.println(sa[0] + ” ” + sa[1]);}

Reference Values as Parameters

Page 11: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

11

public static void main(String[] args) { String[] sa = {"Grumpy", "Happy"}; changeStringArray(sa); System.out.println(sa[0] + ” ” + sa[1]);}public static void changeStringArray

(String[] sA1) { sA1[0] = "Dopey"; sA1[1] = "Sleepy"; System.out.println(sA1[0] + ” ” + sA1[1]);}

Ref. Values as Parameters (corrected)

Page 12: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

12

Exercises

Page 13: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

Search

Linear Search:

1. Receive a non-null list of values and a target value.

2. Loop for each element in list

a. If value equals list[i] then

i. Return true

3. Return false.

Page 14: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

Binary Search1. Receive a non-null, sorted list of values and a target

value.

2. If list is nulla. Return -1.

3. Set first = 0 and last = length of the list - 1.

4. Loop while first <= lasta. Set middle to the integer quotient (first + last) / 2.

b. If value < list[middle] theni. Set last = middle – 1;

c. else if value > list[middle] theni. Set first = middle + 1;

d. else i. Return middle;

5. Return -1.

Page 15: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

15

Multi-Dimensional Data• Some data sets cannot be represented with single-

dimensional arrays.• Examples:

• Matrixes, sudoku puzzles, tictactoe games, chess, checkers, etc.• Spreadsheets are generally two dimensional.• Databases are generally X dimensional where X > 2.

Page 16: JAVA Arrays. Objectives Be able to declare and initialize arrays Be able to conceptualize (draw) how arrays are represented in computer memory. Be able

16

Multi-Dimensional Arrays• Some data collections, like the Sudoku grid can be viewed as multi-dimensional data.• Declaring 2-D arrays:

type[][] identifier = arrayExpression;• Constructing 2-D arrays:

new type[totalRows][totalColumns]• Accessing 2-D array elements:

identifier[someRow][someColumn]• This can be generalized to more dimensions.