DECLARING ARRAYS AND
ACCESSING ARRAY
COMPONENTS
Chapter 7.1:
Why do need array
 Let consider the following problem
How do we write Java program that read five numbers, find
the sum, and prints the numbers in reverse order
 Normally, we need to store all the numbers in 5
variables before we can print it in reverse order
 Let see the following code. (next slide).
import java.util.*;
public class ReverseOrder
{
public static void main(String [] args)
{
int item0, item1, item2, item3, item4;
int sum;
Scanner input = new Scanner(System.in);
System.out.println("Enter five integers one number per line");
item0 = input.nextInt();
item1 = input.nextInt();
item2 = input.nextInt();
item3 = input.nextInt();
item4 = input.nextInt();
sum = item0 + item1 + item2 + item3 + item4;
System.out.println("The sum of the numbers = " + sum);
System.out.println("The numbers in reverse order are: ");
System.out.println(item4 + " " + item3 + " " + item2 + " " + item1 +
" " + item0);
}
}
Why do need array
 We need 5 variables to hold the data
 What happen if we want to read 100 (or
more) numbers and print them in
reverse order.
 So, we need 100 variables to hold all
data. (item0, item1, item2, item3, item4,
item5,…100)
 For large of data, this code is not
desirable.
 We need an ARRAY.
What is Array
 A structured data type with a fixed number
of components.
 Every component is of the same type.
 Components are accessed using their
relative positions in the array.
 Types of array
 One-Dimensional array
 Two-Dimensional array
 Multi Dimensional array
One-Dimensional Arrays
 Syntax to declare an array:
 Syntax to access an array component:
 arrayName[indexExp]
<dataType>[] <arrayName> = new <dataType>[intExp];
Or
<dataType> <arrayName>[]= new <dataType>[intExp];
1. dataType : a type of data will be store in
array or component type
2. arrayName : a reference variable for array
3. intExp : size of an array (> 0)
Example
 This statement declare and
creates the array num of 5
components.
 Each component is int data type
 The components are num[0],
num[1], num[2], num[3], num[4]
 The value in square bracket [ ] is
call index and it start at 0
int[] num = new int[5]; or
int num[] = new int[5];
num
Continue
 In java, [ ] is call as array subscripting operator
 Items in an array is called elements
element
index
Continue
Array of five
integers called test
Array of five
characters
called grade
test[0] = 85;
test[1] = 98;
test[2] = 75;
test[3] = 87;
test[4] = 68;
grade[0] = ‘B’;
grade[1] = ‘C’;
grade[2] = ‘B’;
grade[3] = ‘A’;
grade[4] = ‘C’;
Assign a value into array
Assume the declaration as above.
Statement;
list[3] = 10;
list[6] = 35;
list[5] = list[3] + list[6];
will store 10, 45 and 35 into the array in list[3],
list[5] and list[6] respectively. (see next figure)
int[] list = new int[10];
Specifying Array Size During
Program
Execution (dynamic array)
 Array that are created during program execution is
called dynamic array
 Enables user to specify the size of the array
 The system use the value of arraysize to
instantiate the object list
int arraySize;
System.out.print("Enter the size of the array: ");
arraySize = input.nextInt();
int[] list = new int[arraySize];
Array Initialization During
Declaration
 We also can assign a value into the array during
declaration
 The values, called initial values, are placed
between braces and separated by commas
 When declaring and initializing arrays, the size
of the array is determined by the number of
initial values within the braces.
 If an array is declared and initialized
simultaneously, we do not use the operator new
to instantiate the array object.
double[]sales = {12.25, 32.50, 16.90, 23.00,
45.68};
Arrays and the Instance Variable
length
 A public instance variable length is associated with
each array that has been instantiated.
 The variable length contains the size of the array.
 The variable length can be directly accessed in a
program using the array name and the dot operator.
int[] list = {10, 20, 30, 40, 50, 60};
 This statement creates the array list of six components
and initializes the components using the values given.
 Here list.length is 6.
Loops and Arrays
 Loops can be used to process array in
several ways:
1. Initialing an array to a specific value
2. Input data into an array
3. Printing an array
4. Find the sum and average of an array
5. Determine the largest element in the array
1. Initializing an array to a specific
value
Eg.
to initialize every component of the array
sale with a value of 10.00
double[] sales = new double[10];
int index;
for (index = 0; index < sales.length;index++)
sales[index] = 10.00;
2. Input data into an array
double[] sales = new double[10];
int index;
for (index = 0; index < sales.length;index++)
sales[index] = input.nextDouble();
double[] sales = new double[10];
int index;
for(index = 0; index < sales.length;index++)
System.out.print(sales[index] + " ");
3. Printing an array
4. Find the sum and average of an
array
double[] sales = new double[10];
int index, sum;
double average;
sum = 0;
for(index = 0; index < sales.length;index++)
sum = sum + sales[index];
if (sales.length != 0)
average = sum / sales.length;
else
average = 0.0;
5. Determining the largest element
in the array
double[] sales = new double[10];
int index, maxIndex;
double largestSale;
maxIndex = 0;
for(index = 1; index<sales.length;index++)
if (sales[maxIndex] < sales[index])
maxIndex = index;
largestSale = sales[maxIndex];
Suppose the array sales is as figure 9.5
Array Index Out of Bounds
 An array is in bounds if:
0 <= index <= arraySize – 1
 An array is in out bounds if:
index < 0 or index > arraySize
If an array is out of bounds;
i. ArrayIndexOutOfBoundsException exception is thrown.
ii. The program will terminates with an appropriate error
message
example
 Consider the following declaration:
 The component num[i] is valid if i = 0, 1,
2….9
 When i < 0 or i >= 10, the component
num[i] is invalid (the index is out of bounds)
double[] num = double[10];
int i;
Consider the following loops
for (i = 0; i <= 10; i++)
list[i] = 5;
 When i = 10; list[i] =
list[10] = 5;
 The program tries to access
list[10] but does not exist
 We say the index is out of
bound
5
5
5
5
5
5
5
5
5
5
list[0]
list[1]
list[2]
list[3]
list[4]
list[5]
list[6]
list[7]
list[8]
list[9]

Chapter 7.1

  • 1.
    DECLARING ARRAYS AND ACCESSINGARRAY COMPONENTS Chapter 7.1:
  • 2.
    Why do needarray  Let consider the following problem How do we write Java program that read five numbers, find the sum, and prints the numbers in reverse order  Normally, we need to store all the numbers in 5 variables before we can print it in reverse order  Let see the following code. (next slide).
  • 3.
    import java.util.*; public classReverseOrder { public static void main(String [] args) { int item0, item1, item2, item3, item4; int sum; Scanner input = new Scanner(System.in); System.out.println("Enter five integers one number per line"); item0 = input.nextInt(); item1 = input.nextInt(); item2 = input.nextInt(); item3 = input.nextInt(); item4 = input.nextInt(); sum = item0 + item1 + item2 + item3 + item4; System.out.println("The sum of the numbers = " + sum); System.out.println("The numbers in reverse order are: "); System.out.println(item4 + " " + item3 + " " + item2 + " " + item1 + " " + item0); } }
  • 4.
    Why do needarray  We need 5 variables to hold the data  What happen if we want to read 100 (or more) numbers and print them in reverse order.  So, we need 100 variables to hold all data. (item0, item1, item2, item3, item4, item5,…100)  For large of data, this code is not desirable.  We need an ARRAY.
  • 5.
    What is Array A structured data type with a fixed number of components.  Every component is of the same type.  Components are accessed using their relative positions in the array.  Types of array  One-Dimensional array  Two-Dimensional array  Multi Dimensional array
  • 6.
    One-Dimensional Arrays  Syntaxto declare an array:  Syntax to access an array component:  arrayName[indexExp] <dataType>[] <arrayName> = new <dataType>[intExp]; Or <dataType> <arrayName>[]= new <dataType>[intExp]; 1. dataType : a type of data will be store in array or component type 2. arrayName : a reference variable for array 3. intExp : size of an array (> 0)
  • 7.
    Example  This statementdeclare and creates the array num of 5 components.  Each component is int data type  The components are num[0], num[1], num[2], num[3], num[4]  The value in square bracket [ ] is call index and it start at 0 int[] num = new int[5]; or int num[] = new int[5]; num
  • 8.
    Continue  In java,[ ] is call as array subscripting operator  Items in an array is called elements element index
  • 9.
    Continue Array of five integerscalled test Array of five characters called grade test[0] = 85; test[1] = 98; test[2] = 75; test[3] = 87; test[4] = 68; grade[0] = ‘B’; grade[1] = ‘C’; grade[2] = ‘B’; grade[3] = ‘A’; grade[4] = ‘C’;
  • 10.
    Assign a valueinto array Assume the declaration as above. Statement; list[3] = 10; list[6] = 35; list[5] = list[3] + list[6]; will store 10, 45 and 35 into the array in list[3], list[5] and list[6] respectively. (see next figure) int[] list = new int[10];
  • 12.
    Specifying Array SizeDuring Program Execution (dynamic array)  Array that are created during program execution is called dynamic array  Enables user to specify the size of the array  The system use the value of arraysize to instantiate the object list int arraySize; System.out.print("Enter the size of the array: "); arraySize = input.nextInt(); int[] list = new int[arraySize];
  • 13.
    Array Initialization During Declaration We also can assign a value into the array during declaration  The values, called initial values, are placed between braces and separated by commas  When declaring and initializing arrays, the size of the array is determined by the number of initial values within the braces.  If an array is declared and initialized simultaneously, we do not use the operator new to instantiate the array object. double[]sales = {12.25, 32.50, 16.90, 23.00, 45.68};
  • 14.
    Arrays and theInstance Variable length  A public instance variable length is associated with each array that has been instantiated.  The variable length contains the size of the array.  The variable length can be directly accessed in a program using the array name and the dot operator. int[] list = {10, 20, 30, 40, 50, 60};  This statement creates the array list of six components and initializes the components using the values given.  Here list.length is 6.
  • 15.
    Loops and Arrays Loops can be used to process array in several ways: 1. Initialing an array to a specific value 2. Input data into an array 3. Printing an array 4. Find the sum and average of an array 5. Determine the largest element in the array
  • 16.
    1. Initializing anarray to a specific value Eg. to initialize every component of the array sale with a value of 10.00 double[] sales = new double[10]; int index; for (index = 0; index < sales.length;index++) sales[index] = 10.00;
  • 17.
    2. Input datainto an array double[] sales = new double[10]; int index; for (index = 0; index < sales.length;index++) sales[index] = input.nextDouble(); double[] sales = new double[10]; int index; for(index = 0; index < sales.length;index++) System.out.print(sales[index] + " "); 3. Printing an array
  • 18.
    4. Find thesum and average of an array double[] sales = new double[10]; int index, sum; double average; sum = 0; for(index = 0; index < sales.length;index++) sum = sum + sales[index]; if (sales.length != 0) average = sum / sales.length; else average = 0.0;
  • 19.
    5. Determining thelargest element in the array double[] sales = new double[10]; int index, maxIndex; double largestSale; maxIndex = 0; for(index = 1; index<sales.length;index++) if (sales[maxIndex] < sales[index]) maxIndex = index; largestSale = sales[maxIndex];
  • 20.
    Suppose the arraysales is as figure 9.5
  • 21.
    Array Index Outof Bounds  An array is in bounds if: 0 <= index <= arraySize – 1  An array is in out bounds if: index < 0 or index > arraySize If an array is out of bounds; i. ArrayIndexOutOfBoundsException exception is thrown. ii. The program will terminates with an appropriate error message
  • 22.
    example  Consider thefollowing declaration:  The component num[i] is valid if i = 0, 1, 2….9  When i < 0 or i >= 10, the component num[i] is invalid (the index is out of bounds) double[] num = double[10]; int i;
  • 23.
    Consider the followingloops for (i = 0; i <= 10; i++) list[i] = 5;  When i = 10; list[i] = list[10] = 5;  The program tries to access list[10] but does not exist  We say the index is out of bound 5 5 5 5 5 5 5 5 5 5 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]