24
Introduction to Collections Arrays

Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Embed Size (px)

Citation preview

Page 1: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Introduction to CollectionsArrays

Page 2: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

CollectionsCollections allow us to treat a

group of values as one collective entity.

The array is a collection of homogeneous elements of fixed size.

In an array, there is one name for the set of values…each element of the array is accessed using a subscript (or index).Starting Out With Java Control

Structures to ObjectsBy Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #2

Page 3: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

An array of integer elements

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #3

anArray

012345678

X X – anArray[0]

Y Y – anArray[4]

anArray.lengthis 9 (9 elements,

0 through 8

Page 4: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Creating ArraysAn array is an object so it needs an object

reference.int[] numbers;

//declares a reference to an array that will hold integers.

The next step creates the array and assigns its address to the numbers variablenumbers = new int[6];

//creates a new array that will hold 6 integers.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #4

Array element values are initialized to 0.Array indexes always start at 0.

0index 0

0index 1

0index 2

0index 3

0index 4

0index 5

Page 5: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Creating Arrays

Arrays may be of any type, not just int.float[] temperatures;

char[] letters;

long[] units;

double[] sizes;

Arrays may be of reference types.String [] words;

Players [] list;Starting Out With Java Control

Structures to ObjectsBy Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #5

Page 6: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Instantiating ArraysThe array size must be a non-

negative number.It may be a literal value or be

derived from a constant or variable.final int ARRAY_SIZE = 6;

int[] numbers;

numbers = new int[ARRAY_SIZE];

Once created, an array size is fixed and cannot be changed.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #6

Page 7: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Accessing the Elements of an Array

An array is accessed by:◦the reference name◦a subscript that identifies which

element in the array to access.◦hence the term, subscripted variable.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #7

numbers[0] = 20; //pronounced “numbers sub zero”

numbers[0]

0

numbers[1]

0

numbers[2]

0

numbers[3]

0

numbers[4]

0

numbers[5]

20

Page 8: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Array elementsmay be used anywhere that a

similar single variable may be used.

may be on the left side of an assignment (the recipient)

may be in any expressionmay be passed to a methodmay be returned from a method

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #8

Page 9: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Inputting and OutputtingArray Elements

Array elements can be treated as any other variable.

They are simply accessed by the same name and a subscript.

Example: ArrayDemo1.javaArray subscripts can be accessed

using variables (such as for loop counters).

Example: ArrayDemo2.java

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #9

Page 10: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Bounds CheckingArray indexes always start at

zero and continue to (array length - 1).int values;

values = new int[10];

This array would have indexes 0 through 9.

Example: InvalidSubscript.java

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #10

Page 11: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Off-by-One ErrorsIt is very easy to be off-by-one when

accessing arrays.// This code has an off-by-one error.

int[] numbers;

numbers = new int[100];

for (int i = 1; i <= 100; i++)

numbers[i] = 99;

Here, the equal sign allows the loop to continue on to index 100, where 99 is the last index in the array.

This code would throw an ArrayIndexOutOfBoundsException.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #11

Page 12: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Array InitializationWhen relatively few items need to be

initialized, an initialization list can be used to initialize the array.int[]days = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

The numbers in the list are stored in the array in order:◦ days[0] is assigned 31,◦ days[1] is assigned 28,◦ days[2] is assigned 31,◦ days[3] is assigned 30,◦ etc.

Example: ArrayInitialization.javaStarting Out With Java Control

Structures to ObjectsBy Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #12

Page 13: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Alternate Array Declaration

Previously we showed arrays being declared:

int[] numbers;

◦ However, the brackets can also go here:int numbers[];

◦ These are equivalent but the first style is typical.

Multiple arrays can be declared on the same line.

int[] numbers, codes, scores;

With the alternate notation each variable must have brackets.int numbers[], codes[], scores;

◦ The scores variable in this instance is simply an int variable.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #13

Page 14: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Processing Array ContentsArray elements can be used in

relational operations:if(cost[20] < cost[0])

{

//statements

}

They can be used as loop conditions:while(value[count] != 0)

{

//statements

}Starting Out With Java Control

Structures to ObjectsBy Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #14

Page 15: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Array LengthArrays are objects and provide a

public field named length that is a constant that can be tested.double[] temperatures = new double[25];

◦The length of this array is 25.The length of an array can be

obtained via its length attribute.int size = temperatures.length;

◦The variable size will contain 25.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #15

Page 16: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #16

STOP

Page 17: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

The Enhanced for LoopSimplified array processing (read only)Always goes through all elementsGeneral:

for(datatype elementVariable : array)

statement;

Example:int[] numbers = {3, 6, 9};

for(int val : numbers)

{

System.out.println(“The next value is” + val);

}

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #17

Page 18: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Array SizeThe length attribute can be used

in a loop to provide automatic bounding.

for(int i = 0; i < temperatures.length; i++)

{

System.out.println(“Temperature “ + i “: “

+ temperatures[i]);

}

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #18

Index subscripts start at 0 and end at one less than the array length.

Page 19: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Array SizeIt is possible to get the size of an array

from a user:String input;

int numTests;

int[] tests;

Scanner keyboard =

new Scanner(System.in);

System.out.print("How many numbers do you have? ");

input = keyboard.readLine();

numTests = Integer.parseInt(input);

tests = new int[numTests];

Example: DisplayTestScores.javaStarting Out With Java Control

Structures to ObjectsBy Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #19

Page 20: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Passing Array Elements to a Method

When a single element of an array is passed to a method it is handled like any other variable.

Example: PassElements.javaMore often you will want to write

methods to process array data by passing the entire array, not just one element at a time.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #20

Page 21: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

String ArraysArrays are not limited to primitive

data.An array of String objects can be

created:String[] names = { "Bill", "Susan", "Steven", "Jean" };

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #21

The names variable holdsthe address to the array.

A String array is an arrayof references to String objects.

Address

“Bill”

“Susan”

“Steven”

“Jean”

address

address

address

address

names[1]

names[0]

names[3]

names[2]

Example:MonthDays.java

Page 22: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

String ArraysIf an initialization list is not

provided, the new keyword must be used to create the array: String[] names = new String[4];

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #22

The names variable holdsthe address to the array.

Address

null

null

null

null

names[1]

names[0]

names[3]

names[2]

Page 23: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

String ArraysWhen an array is created in this

manner, each element of the array must be initialized.

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #23

The names variable holdsthe address to the array.

Address

null

null

null

null

names[1]

names[0]

names[3]

names[2]

names[0] = "Bill";names[1] = "Susan";names[2] = "Steven";names[3] = "Jean";

“Bill”

“Susan”

“Steven”

“Jean”

Page 24: Introduction to Collections Arrays. Collections Collections allow us to treat a group of values as one collective entity. The array is a collection of

Calling String Methods On Array Elements

String objects have several methods.◦ toUpperCase,◦ compareTo◦ equals◦ charAt

Each element of a String array is a String object.

Methods can be used by using the array name and index as before.

System.out.println(names[0].toUpperCase());char letter = names[3].charAt(0);

Starting Out With Java Control Structures to Objects

By Tony Gaddis

Copyright © 2005, Pearson Addison-Wesley. All rights reserved.

Chapter

8Slide #24