Top Banner
Introduction to Arrays
55

Introduction to Arrays. Useful Array Operations Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Dec 24, 2015

Download

Documents

Lorin Mathews
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Introduction to Arrays

Page 2: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Useful Array Operations Finding the Highest Value

int [] numbers = new int[50];int highest = numbers[0];for (int i = 1; i < numbers.length; i++){

if (numbers[i] > highest)highest = numbers[i];

}

Finding the Lowest Valueint lowest = numbers[0];for (int i = 1; i < numbers.length; i++){

if (numbers[i] < lowest)lowest = numbers[i];

}

Page 3: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Useful Array Operations

Summing Array Elements:int total = 0; // Initialize accumulatorfor (int i = 0; i < units.length; i++) total += units[i];

Averaging Array Elements:double total = 0; // Initialize accumulatordouble average; // Will hold the averagefor (int i = 0; i < scores.length; i++)

total += scores[i];average = total / scores.length;

Page 4: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Sales.javapublic class Sales{ public static void main(String[] args) { final int ONE_WEEK = 7; // Number of elements double[] sales = new double[ONE_WEEK]; getValues(sales);

DecimalFormat dollar = new DecimalFormat("#,##0.00");JOptionPane.showMessageDialog(null,

"The total sales were $" + dollar.format(getTotal(sales)) + "\nThe average sales were $" + dollar.format(getAverage(sales)) + "\nThe highest sales were $" + dollar.format(getHighest(sales)) + "\nThe lowest sales were $" + dollar.format(getLowest(sales)));}

Page 5: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

public static double getTotal(double[] sales ) { double total = 0.0; // Accumulator

for (int index = 0; index < sales.length; index++) total += sales[index];

return total; }

public static double getAverage(double[] sales ) { return getTotal() / sales.length; }

Page 6: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

public static double getHighest(double[] sales ) { double highest = sales[0]; for (int index = 1; index < sales.length; index++) { if (sales[index] > highest) highest = sales[index]; } return highest; } public static double getLowest(double[] sales ) { double lowest = sales[0]; for (int index = 1; index < sales.length; index++) { if (sales[index] < lowest) lowest = sales[index]; } return lowest; }

Page 7: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Sorting an Array

Java provides a class named Array that simplifies some array operations.

The Array class has a static method named sort that will sort a numeric array in ascending order.Array.sort(numbers);

To use the class, the import statement, import java.util.Array; must be used.

Page 8: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Partially Filled Arrays Typically, if it is unknown how much data

an array will be holding: size the array to the largest expected number of

elements. use a counting variable to keep track of how

much valid data is in the array.…int[] array = new int[100];int count = 0;… number = Integer.parseInt(JOptionPane.showInputDialog(

"Enter a number or -1 to quit: ")); while (number != -1 && count <= 99) { count++; array[count - 1] = number; }…

Page 9: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Returning an Array Reference A method can return a reference to an

array. The return type of the method must be

declared as an array of the right type.public static double[] getArray(){ double[] array = { 1.2, 2.3, 4.5, 6.7, 8.9 }; return array;}

The getArray method is a public static method that returns an array of doubles.

Page 10: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: ReturnArray.java

public class ReturnArray{ public static void main(String[] args) { double[] values;

values = getArray(); for (int index = 0; index < values.length; index++) System.out.print(values[index] + " "); } public static double[] getArray() { double[] array = { 1.2, 2.3, 4.5, 6.7, 8.9 };

return array; }}

Page 11: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

String Arrays Arrays are not limited to primitive data. An array of String objects can be created:

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

The names variable

holdsthe address to the array.

Address

“Bill”

“Susan”

“Steven”

“Jean”

address

address

address

address

names[1]

names[0]

names[3]

names[2]

Page 12: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

public class MonthDays{ public static void main(String[] args) { String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; for (int index = 0; index < months.length; index++) { System.out.println(months[index] + " has " + days[index] + " days."); } }}

Example:MonthDays.java

Page 13: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

String Arrays If an initialization list is not provided, the

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

The names variable holdsthe address to the array.

Address

null

null

null

null

names[1]

names[0]

names[3]

names[2]

Page 14: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

String Arrays

When an array is created in this manner, each element of the array must be initialized.

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 15: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

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);

Page 16: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

The length Field &The length Method

Arrays have a final field named length. String objects have a method named length. To display the length of each string held in a

String array:for (int i = 0; i < names.length; i++) System.out.println(names[i].length());

An array’s length is a field You do not write a set of parentheses after its name.

A String’s length is a method You do write the parentheses after the name of the

String class’s length method.

Page 17: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

The Sequential Search Algorithm A search algorithm is a method of locating

a specific item in a larger collection of data. The sequential search algorithm uses a loop

to: sequentially step through an array, compare each element with the search value,

and stop when

the value is found or the end of the array is encountered.

Page 18: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: SearchArray.javapublic class SearchArray { public static void main(String[] args) { int[] tests = { 87, 75, 98, 100, 82 }; int results; results = sequentialSearch(tests, 100); if (results == -1) { System.out.println("You did not " + "earn 100 on any test."); } else { System.out.println("You earned 100 " + "on test " + (results + 1)); } }

Page 19: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: SearchArray.javapublic static int sequentialSearch(int[] array, int value) { int index; // Loop control variable int element; // Element the value is found at boolean found; // Flag indicating search results index = 0; element = -1; found = false; while (!found && index < array.length) { if (array[index] == value) { found = true; element = index; } index++; } return element; }}

Page 20: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Parallel Arrays By using the same subscript, you can build

relationships between data stored in two or more arrays.String[] names = new String[5];

String[] addresses = new String[5];

The names array stores the names of five persons

The addresses array stores the addresses of the same five persons.

The data for one person is stored at the same index in each array.

Page 21: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Parallel Arrays

names[0]

addresses[0]

Person #1

names[1]

addresses[1]

Person #2

names[2]

addresses[2]

Person #3

names[4]

addresses[4]

Person #5

names[3]

addresses[3]

Person #4

Relationship between names and addresses array elements.

• Parallel arrays are useful when storing data of unlike types.

Page 22: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: ParallelArrays.javapublic class ParallelArrays { public static void main(String [] args) { final int NUM_EMPLOYEES = 3; int[] hours = new int[NUM_EMPLOYEES]; double[] payRates = new double[NUM_EMPLOYEES]; getPayData(hours, payRates); displayGrossPay(hours, payRates); }

private static void getPayData(int[] hours, double[] payRates) { for (int i = 0; i < hours.length; i++) { hours[i] = Integer.parseInt(JOptionPane.showInputDialog(

"Enter the hours worked by employee #" + (i + 1)) ); payRates[i] =

Double.parseDouble(JOptionPane.showInputDialog("Enter the hourly pay rate for employee #" + (i + 1) ));

} }

Page 23: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: ParallelArrays.javaprivate static void displayGrossPay(int [] hours, double [] payRates) { double grossPay; // To hold gross pay DecimalFormat dollar = new DecimalFormat("#,##0.00"); for (int i = 0; i < hours.length; i++) { grossPay = hours[i] * payRates[i]; System.out.println("The gross pay for " + "employee #" + (i + 1) + " is $" + dollar.format(grossPay)); } }}

Page 24: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Two-Dimensional Arrays A two-dimensional array is an array of

arrays. It can be thought of as having rows

and columns.

row 0

column 1 column 2 column 3column 0

row 1

row 2

row 3

Page 25: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Declaring a two-dimensional array requires two sets of brackets and two size declarators The first one is for the number of rows The second one is for the number of columns.

double[][] scores = new double[3][4];

The two sets of brackets in the data type indicate that the scores variable will reference a two-dimensional array.

Notice that each size declarator is enclosed in its own set of brackets.

Two-Dimensional Arrays

two dimensional array rows columns

Page 26: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Accessing Two-Dimensional Array Elements

When processing the data in a two-dimensional array, each element has two subscripts: one for its row and another for its column.

Page 27: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Accessing Two-Dimensional Array Elements

scores[0][3]scores[0][2]scores[0][1]scores[0][0]row 0

column 1 column 2 column 3column 0

row 1

row 2

The scores variableholds the address of a2D array of doubles.

Address

scores[1][3]scores[1][2]scores[1][1]scores[1][0]

scores[2][3]scores[2][2]scores[2][1]scores[2][0]

Page 28: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Accessing Two-Dimensional Array Elements

Accessing one of the elements in a two-dimensional array requires the use of both subscripts.

scores[2][1] = 95;

0000row 0

column 1 column 2 column 3column 0

row 1

row 2

The scores variableholds the address of a2D array of doubles.

Address

0000

00950

Page 29: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Accessing Two-Dimensional Array Elements Programs that process two-dimensional

arrays can do so with nested loops. To fill the scores array:

for (int row = 0; row < 3; row++)

{

for (int col = 0; col < 4; col++){

scores[row][col] = Double.parseDouble(

JOptionPane.showInputDialog( "Enter a score: "));

}

}

Number of rows, not the largest subscript

Number of columns, not the largest subscript

Page 30: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Accessing Two-Dimensional Array Elements

To print out the scores array:for (int row = 0; row < 3; row++)

{

for (int col = 0; col < 4; col++)

{

System.out.println(scores[row][col]);

}

}

Page 31: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: CorpSales.javapublic class CorpSales{ public static void main(String[] args) { final int DIVS = 3; // Three divisions in the company final int QTRS = 4; // Four quarters double totalSales = 0.0; // Accumulator double[][] sales = new double[DIVS][QTRS]; System.out.println("This program will calculate the "

+ "total sales of"); System.out.println("all the company's divisions. " + "Enter the following sales data:");

Page 32: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: CorpSales.javafor (int div = 0; div < DIVS; div++) { for (int qtr = 0; qtr < QTRS; qtr++) { System.out.print("Division " + (div + 1) + ", Quarter " + (qtr + 1) + ": $"); sales[div][qtr] =

Double.parseDouble( JOptionPane.showInputDialog(("Division " + (div + 1) +

", Quarter " + (qtr + 1) + ": $" )); } System.out.println(); // Print blank line. }

Page 33: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: CorpSales.javafor (int div = 0; div < DIVS; div++) { for (int qtr = 0; qtr < QTRS; qtr++) { totalSales += sales[div][qtr]; } } DecimalFormat dollar = new

DecimalFormat("#,##0.00"); System.out.println("The total sales for the company "

+ "are $" + dollar.format(totalSales)); }}

Page 34: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Initializing a Two-Dimensional Array

Initializing a two-dimensional array requires enclosing each row’s initialization list in its own set of braces.int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

Java automatically creates the array and fills its elements with the initialization values. row 0 {1, 2, 3} row 1 {4, 5, 6} row 2 {7, 8, 9}

Declares an array with three rows and three columns.

Page 35: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Initializing a Two-Dimensional Array

321row 0

column 1 column 2column 0

row 1

row 2

Address

654

987

The numbers variableholds the address of a2D array of int values.

int[][] numbers = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

produces:

Page 36: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

The length Field

Two-dimensional arrays are arrays of one-dimensional arrays.

The length field of the array gives the number of rows in the array.

Each row has a length constant tells how many columns is in that row.

Each row can have a different number of columns.

Page 37: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

The length Field

To access the length fields of the array:int[][] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7 }, { 9, 10, 11, 12 } };

for (int row = 0; row < numbers.length; row++){ for (int col = 0; col < numbers[row].length; col++) System.out.println(numbers[row][col]);}Number of rows Number of columns in this row.

The array can have variable length rows.

Page 38: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Summing The Elements of a Two-Dimensional Array

int[][] numbers = { { 1, 2, 3, 4 },

{5, 6, 7, 8},

{9, 10, 11, 12} };

int total;

total = 0;

for (int row = 0; row < numbers.length; row++)

{

for (int col = 0; col < numbers[row].length; col++)

total += numbers[row][col];

}

System.out.println("The total is " + total);

Page 39: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: Lengths.javapublic class Lengths { public static void main(String[] args) { int[][] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; System.out.println("The number of " + "rows is " + numbers.length); for (int index = 0; index < numbers.length; index++) { System.out.println("The number of " + "columns in row " + index + " is " + numbers[index].length); } }}

Page 40: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Summing The Rows of a Two-Dimensional Array

int[][] numbers = {{ 1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11, 12}};

int total;

for (int row = 0; row < numbers.length; row++)

{

total = 0;

for (int col = 0; col < numbers[row].length; col++)

total += numbers[row][col];

System.out.println("Total of row "

+ row + " is " + total);

}

Page 41: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Summing The Columns of a Two-Dimensional Array

int[][] numbers = {{1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11, 12}};

int total;

for (int col = 0; col < numbers[0].length; col++)

{

total = 0;

for (int row = 0; row < numbers.length; row++)

total += numbers[row][col];

System.out.println("Total of column "

+ col + " is " + total);

}

Page 42: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Passing and Returning Two-Dimensional Array References

There is no difference between passing a single or two-dimensional array as an argument to a method.

The method must accept a two-dimensional array as a parameter.

Page 43: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: Pass2Darray.javapublic class Pass2Darray{ public static void main(String[] args) { int[][] numbers = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; System.out.println("Here are the values " + " in the array."); showArray(numbers); System.out.println("The sum of the values " + "is " + arraySum(numbers)); }

Page 44: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: Pass2Darray.javaprivate static void showArray(int[][] array) { for (int row = 0; row < array.length; row++) { for (int col = 0; col < array[row].length; col++) System.out.print(array[row][col] + " "); System.out.println(); } } private static int arraySum(int[][] array) { int total = 0; // Accumulator for (int row = 0; row < array.length; row++) { for (int col = 0; col < array[row].length; col++) total += array[row][col]; } return total; }}

Page 45: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Ragged Arrays When the rows of a two-dimensional array

are of different lengths, the array is known as a ragged array.

You can create a ragged array by creating a two-dimensional array with a specific number of rows, but no columns.

int [][] ragged = new int [4][];

Then create the individual rows.ragged[0] = new int [3];ragged[1] = new int [4];ragged[2] = new int [5];ragged[3] = new int [6];

Page 46: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

More Than Two Dimensions Java does not limit the number of dimensions

that an array may be. More than three dimensions is hard to visualize,

but can be useful in some programming problems.

Page 47: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Selection Sort

In a selection sort: The smallest value in the array is located

and moved to element 0. Then the next smallest value is located

and moved to element 1. This process continues until all of the

elements have been placed in their proper order.

Page 48: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: SelectionSortDemo.javapublic class SelectionSortDemo { public static void main(String[] arg) { int[] values = {5, 7, 2, 8, 9, 1}; System.out.println("The unsorted values are:"); for (int i = 0; i < values.length; i++) System.out.print(values[i] + " "); System.out.println(); selectionSort(values); System.out.println("The sorted values are:"); for (int i = 0; i < values.length; i++) System.out.print(values[i] + " "); System.out.println(); }

Page 49: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: SelectionSortDemo.javapublic static void selectionSort(int[] array) { int startScan, index, minIndex, minValue; for (startScan = 0; startScan < (array.length-1); startScan++) { minIndex = startScan; minValue = array[startScan]; for(index = startScan + 1; index < array.length; index++) { if (array[index] < minValue) { minValue = array[index]; minIndex = index; } } array[minIndex] = array[startScan]; array[startScan] = minValue; } }}

Page 50: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Binary Search A binary search:

requires an array sorted in ascending order. starts with the element in the middle of the

array. If that element is the desired value, the search

is over. Otherwise, the value in the middle element is

either greater or less than the desired value If it is greater than the desired value, search in

the first half of the array. Otherwise, search the last half of the array. Repeat as needed while adjusting start and

end points of the search.

Page 51: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Example: BinarySearchDemo.javapublic static int binarySearch(int[] array, int value) { int first; // First array element int last; // Last array element int middle; // Mid point of search int position; // Position of search value boolean found; // Flag // Set the inital values. first = 0; last = array.length - 1; position = -1; found = false;

Page 52: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

BinarySearchDemo.java while (!found && first <= last) { // Calculate mid point middle = (first + last) / 2; // If value is found at midpoint... if (array[middle] == value) { found = true; position = middle; } // else if value is in lower half... else if (array[middle] > value) last = middle - 1; // else if value is in upper half.... else first = middle + 1; } return position; }

Page 53: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Command-Line Arguments A Java program can receive arguments

from the operating system command-line. The main method has a header that looks

like this:public static void main(String[] args)

The main method receives a String array as a parameter.

The array that is passed into the args parameter comes from the operating system command-line.

Page 54: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Command-Line Arguments To run the example:

java CommandLine How does this work?args[0] is assigned “How”

args[1] is assigned “does”

args[2] is assigned “this”

args[3] is assigned “work?”

It is not required that the name of main’s parameter array be args.

Page 55: Introduction to Arrays. Useful Array Operations  Finding the Highest Value int [] numbers = new int[50]; int highest = numbers[0]; for (int i = 1; i.

Examples: CommandLine.java

public class CommandLine{ public static void main(String[] args) { for (int index = 0; index < args.length;

index++) System.out.println(args[index]); }}