CBOP3203 Arrays Data structures Related data items of same type - - PowerPoint PPT Presentation

cbop3203 arrays
SMART_READER_LITE
LIVE PREVIEW

CBOP3203 Arrays Data structures Related data items of same type - - PowerPoint PPT Presentation

CBOP3203 Arrays Data structures Related data items of same type Remain same size once created Fixed-length entries A 12 element Array Index Also called subscript Position number in square brackets Must be


slide-1
SLIDE 1

CBOP3203

slide-2
SLIDE 2

 Arrays

  • Data structures
  • Related data items of same type
  • Remain same size once created

 Fixed-length entries

slide-3
SLIDE 3

 A 12 element Array

slide-4
SLIDE 4

 Index

  • Also called subscript
  • Position number in square brackets
  • Must be positive integer or integer expression
  • First element has index zero

a = 5; b = 6; c[ a + b ] += 2;

 Adds 2 to c[ 11 ]

slide-5
SLIDE 5

 Declaring and Creating arrays

  • Arrays are objects that occupy memory
  • Created dynamically with keyword new

int c[] = new int[ 12 ];

 Equivalent to int c[]; // declare array variable c = new int[ 12 ]; // create array

 We can create arrays of objects too

String b[] = new String[ 100 ];

slide-6
SLIDE 6

 Creating and initializing an array

  • Declare array
  • Create array
  • Initialize array elements
slide-7
SLIDE 7

1 // Fig. 7.2: InitArray.java 2 // Creating an array. 3 4 public class InitArray 5 { 6 public static void main( String args[] ) 7 { 8 int array[]; // declare array named array 9 10 array = new int[ 10 10 ]; // create the space for array 11 12 System.out.printf( "%s%8s\n" n", , "Index", , "Value" ); // column headings 13 14 // output each array element's value 15 for ( ( int int counter = 0; counter < array.length; counter++ ) 16 System.out.printf( "%5d%8d\n" n", counter, array[ counter ] ); 17 } // end main 18 } } // end class InitArray Index Value 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0

Declare array as an array of ints Create 10 ints for array; each int is initialized to 0 by default array.length returns length of array array[counter] returns int associated with index in array Each int is initialized to 0 by default

slide-8
SLIDE 8

 Using an array initializer

  • Use initializer list

 Items enclosed in braces ({})  Items in list separated by commas int n[] = { 10, 20, 30, 40, 50 };

 Creates a five-element array  Index values of 0, 1, 2, 3, 4

  • Do not need keyword new
slide-9
SLIDE 9

1 // Fig. 7.3: InitArray.java 2 // Initializing the elements of an array with an array initializer. 3 4 public class InitArray 5 { 6 public static void main( String args[] ) 7 { 8 // initializer list specifies the value for each element 9 int array[] = { 32 32, , 27 27, , 64 64, , 18 18, , 95 95, , 14 14, , 90 90, , 70 70, , 60 60, , 37 37 }; 10 11 System.out.printf( "%s%8s\n" n", , "Index", , "Value" ); // column headings 12 13 // output each array element's value 14 for ( ( int int counter = 0; counter < array.length; counter++ ) 15 System.out.printf( "%5d%8d\n" n", counter, array[ counter ] ); 16 } // end main 17 } } // end class InitArray Index Value 0 32 1 27 2 64 3 18 4 95 5 14 6 90 7 70 8 60 9 37

Declare array as an array of ints Compiler uses initializer list to allocate array

slide-10
SLIDE 10

 Calculating a value to store in each array element

  • Initialize elements of 10-element array to even

integers

slide-11
SLIDE 11

11

1 // Fig. 7.4: InitArray.java 2 // Calculating values to be placed into elements of an array. 3 4 public class InitArray 5 { 6 public static void main( String args[] ) 7 { { 8 final int ARRAY_LENGTH = = 10 10; ; // declare constant 9 int int array[] = new new int[ [ ARRAY_LENGTH ]; // create array 10 11 // calculate value for each array element 12 for for ( ( int int counter = 0; counter < array.length; counter++ ) 13 array[ counter ] = 2 + 2 * counter; 14 15 System.out.printf( "%s%8s\n" n", , "Index", , "Value" ); // column headings 16 17 // output each array element's value 18 for ( ( int int counter = 0; counter < array.length; counter++ ) 19 System.out.printf( "%5d%8d\n" n", counter, array[ counter ] ); 20 } // end main 21 } } // end class InitArray Index Value 0 2 1 4 2 6 3 8 4 10 5 12 6 14 7 16 8 18 9 20

Declare constant variable ARRAY_LENGTH using the final modifier Declare and create array that contains 10 ints Use array index to assign array value

slide-12
SLIDE 12

 Summing the elements of an array

  • Array elements can represent a series of values

 We can sum these values

slide-13
SLIDE 13

13

1 // Fig. 7.5: SumArray.java 2 // Computing the sum of the elements of an array. 3 4 public class SumArray 5 { 6 public static void main( String args[] ) 7 { 8 int array[] = { 87 87, , 68 68, , 94 94, , 100 100, , 83 83, , 78 78, , 85 85, , 91 91, , 76 76, , 87 87 }; 9 int total = 0; 10 11 // add each element's value to total 12 for ( ( int int counter = 0; counter < array.length; counter++ ) 13 total += array[ counter ]; 14 15 System.out.printf( "Total of array elements: %d\n" n", , total ); 16 } // end main 17 } } // end class SumArray Total of array elements: 849

Declare array with initializer list Sum all array values

slide-14
SLIDE 14

 To pass array argument to a method

  • Specify array name without brackets

 Array hourlyTemperatures is declared as int hourlyTemperatures = new int[ 24 ];  The method call modifyArray( hourlyTemperatures );  Passes array hourlyTemperatures to method modifyArray

slide-15
SLIDE 15

15

1 // Fig. 7.13: PassArray.java 2 // Passing arrays and individual array elements to methods. 3 4 public class PassArray 5 { 6 // main creates array and calls modifyArray and modifyElement 7 public static void main( String args[] ) 8 { { 9 int int array[] = { 1, , 2, , 3, , 4, , 5 }; }; 10 11 System.out.println( 12 "Effects of passing reference to entire array: \n" n" + + 13 "The values of the original array are:" ); 14 15 // output original array elements 16 for for ( ( int int value : array ) 17 System.out.printf( " %d", value ); 18 19 modifyArray( array ); // pass array reference 20 System.out.println( "\n\nThe values of the modified array are:" ); 21 22 // output modified array elements 23 for for ( ( int int value : array ) 24 System.out.printf( " %d", value ); 25 26 System.out.printf( 27 "\n\nEffects of passing array element value: \n" n" + + 28 "array[3] before modifyElement: %d\n" n", array[ 3 ] );

Declare 5-int array with initializer list Pass entire array to method modifyArray

slide-16
SLIDE 16

16

29 30 modifyElement( array[ 3 ] ); // attempt to modify array[ 3 ] 31 System.out.printf( 32 "array[3] after modifyElement: %d \n" n", array[ 3 ] ); 33 } // end main 34 35 // multiply each element of an array by 2 36 public static void modifyArray( int array2[] ) 37 { 38 for ( ( int int counter = 0; counter < array2.length; counter++ ) 39 array2[ counter ] *= 2; 40 } } // end method modifyArray 41 42 // multiply argument by 2 43 public static void modifyElement( int int element ) 44 { 45 element *= 2; 46 System.out.printf( 47 "Value of element in modifyElement: %d\n" n", element ); 48 } } // end method modifyElement 49 } } // end class PassArray Effects of passing reference to entire array: The values of the original array are: 1 2 3 4 5 The values of the modified array are: 2 4 6 8 10 Effects of passing array element value: array[3] before modifyElement: 8 Value of element in modifyElement: 16 array[3] after modifyElement: 8

Pass array element array[3] to method modifyElement Method modifyArray manipulates the array directly Method modifyElement manipulates a primitive’s copy

slide-17
SLIDE 17

Method arraycopy used to copy intArray to intArrayCopy

slide-18
SLIDE 18
slide-19
SLIDE 19

 String Declaration

  • String zero = “ ”;//an empty string
  • String university = “Open University Malaysia”;
  • String courseCode = “CBOP3203”;
  • String courseName= “Object Oriented programming”;
slide-20
SLIDE 20

 Java uses the '+' operator to combine two

strings.

String son = "Firdaus"; String Father = "Mohamed"; String myName = son + father; String myFullName ="Ahmed " + "Mohamed"

slide-21
SLIDE 21

 To obtain only part of the complete string, we

use the substring() method. This method is a library method available in String class. For example, let us look at the following program segment:

 String IPTS = "Open University Malaysia";  String S = IPTS.substring(0,4);

slide-22
SLIDE 22

 Method length

  • Determine the length of a String

 Like arrays, Strings always “know” their size

 Method charAt

  • Get character at specific location in String

 Method getChars

  • Get entire set of characters in String
slide-23
SLIDE 23

23

1 // Fig. 29.2: StringMiscellaneous.java 2 // This application demonstrates the length, charAt and getChars 3 // methods of the String class. 4 5 public class StringMiscellaneous 6 { 7 public static void main( String args[] ) 8 { 9 String s1 = "hello there"; 10 char charArray[] = new char[ 5 ]; ]; 11 12 System.out.printf( "s1: %s", s1 ); 13 14 // test length method 15 System.out.printf( "\nLength of s1: %d", , s1.length() ); ); 16 17 // // loop through characters in s1 with charAt and display reversed 18 System.out.print( "\nThe string reversed is: " ); ); 19 20 for for ( ( int int count = s1.length() - 1; count >= 0; count--

  • - )

21 System.out.printf( "%s ", , s1.charAt( count ) ); ); 22

Determine number of characters in String s1 Display the characters of the string s1 in reverse

  • rder
slide-24
SLIDE 24

24

23 // copy characters from string into charArray 24 s1.getChars( 0, , 5, charArray, 0 ); ); 25 System.out.print( "\nThe character array is: " ); ); 26 27 for for ( ( char character : charArray ) 28 System.out.print( character ); ); 29 30 System.out.println(); 31 } } // end main 32 } // end class StringMiscellaneous s1: hello there Length of s1: 11 The string reversed is: e r e h t o l l e h The character array is: hello

Copy (some of) s1’s characters to charArray

slide-25
SLIDE 25

 To find the length of a string, use the length()

method.

  • String IPTS = "Open University Malaysia";
  • int length = IPTS.length( ); //length value is 27
slide-26
SLIDE 26

 To test whether two strings have the same value,

we can use equals() method. The expression

  • s.equals(r)

 returns the true value if s and r strings, are the

same and false if otherwise.

 Check Java Documentation for more details on

String

  • ja

java. va.la lang.S ng.Stri tring ng

slide-27
SLIDE 27

 How can you format a numeric value or

numeric number in Java? Example, how you can obtain 12.53 from 12.5323468787 or 1,267 from 1267.

 We can use ja

java va.text.D text.Decimal ecimalFormat Format to format numbers.

  • DecimalFormat num = new DecimalFormat(“.000”);
  • DecimalFormat num = new DecimalFormat(“000”);
slide-28
SLIDE 28

import java.text.*; //compulsory if you are using DecimalFormat class myFormat {

public static void main (String[ ] args) { int papar=6; DecimalFormat num = new DecimalFormat(“000”); System.out.println(num.format(papar)); System.out.println(num.format(18)); System.out.println(num.format(124)); System.out.println(num.format(23455));

} }

slide-29
SLIDE 29

import java.text.*; public class Generous { public static void main (String [] args) { double giveaway = 1000000.0; DecimalFormat Currency = new DecimalFormat("#0.00 pounds"); for (int rec = 30; rec <= 45; rec++) { double amount = giveaway / rec; System.out.print ("With "+rec+ " recipients "); String howmuch = Currency.format(amount); System.out.println ("each gets "+howmuch); } } }

slide-30
SLIDE 30

 Q1. Write statements that perform the following

  • ne-dimensional-array operations:

a) Set the 10 elements of integer array counts to zero. b) Add one to each of the 15 elements of integer array bonus. c) Display the five values of integer array bestScores in column format.

slide-31
SLIDE 31

 Q2. Write a Java program that reads a string

from the keyboard, and outputs the string twice in a row, first all uppercase and next all

  • lowercase. If, for instance, the string “Hello" is

given, the output will be “HELLOhello".

slide-32
SLIDE 32

 Q3. Write a Java application that allows the

user to enter up to 20 integer grades into an

  • array. Stop the loop by typing in -1. Your

main method should call an Average method that returns the average of the grades. Use the DecimalFormat class to format the average to 2 decimal places.