RECITATION. EF 151 Recitation Solve Problems Demonstrations Team Projects.
CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.
-
date post
21-Dec-2015 -
Category
Documents
-
view
214 -
download
0
Transcript of CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.
![Page 1: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/1.jpg)
CS180 Recitation25th/26th October, 2007
Department of Computer Science,
Purdue University
![Page 2: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/2.jpg)
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
2
Announcements & Reminders
Project 4 grades out Exam 2 on October 31st, 7-8 PM Project 6 is due on the same day at 10 PM,
so finish it early! Sign the academic integrity policy if you still
haven’t.
![Page 3: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/3.jpg)
Basics
Arrays are an indexed collection of data values all of the same type
e.g An array of length 20 -
![Page 4: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/4.jpg)
Arrays of Primitive Data Types
Array Declaration<data type> [ ] <variable>
//variation 1<data type> <variable>[ ] //variation
2 Array Creation
<variable> = new <data type> [ <size> ]
Example
![Page 5: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/5.jpg)
Arrays of Objects
In Java, in addition to arrays of primitive data types, we can declare arrays of objects.
An array of primitive data is a powerful tool, but an array of objects is even more powerful.
The use of an array of objects allows us to model the application more cleanly and logically.
![Page 6: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/6.jpg)
Array data type
An array with elements of type T is a new datatype represented as T[ ]
int [ ] age; double salary[ ]; Person student[ ];
age is of type int[] salary is of type double [] student is of type Person []
Each element of this array is of type T age[0] is int type. salary[3] is double type student [1] is a Person object.
![Page 7: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/7.jpg)
Array Initialization
It is possible to declare andinitialize an array at the same time.
It is also common to initialize an arrayusing a for loop.
![Page 8: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/8.jpg)
Index of an array
An index for an array must be between 0 and length – 1
An index outside of this range will throw an ArrayIndexOutOfBoundsException
This does not need to be caught, but the program will terminate if it’s not.
Note: Arrays have a public constant length which will
tell you the length of an array Person[] a = new Person[17]; a.length == 17;
![Page 9: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/9.jpg)
Array example 1
int[] values = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34};String[] names = new String[5];names[1] = “Jupiter”;names[3] = “Pluto”;for(i=0;i<values.length;++i)
System.out.println(values[i] + “ “);
System.out.println(names[values[values[3]]]);
![Page 10: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/10.jpg)
Array Example2
Assume we have an array of double called numbers which has already been initialized.
The average of the numbers is computed here-
double sum = 0;for(int i = 0; i < numbers.length; i++){
sum += numbers[i];}
double average = sum/numbers.length;
![Page 11: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/11.jpg)
Array Example3 – Array of objects
public class Brady{
private String name;
private int age;
public Brady(String n, int a){
name = n;
age = a;
}
public String getName(){
return name;
}
public int age(){
return age;
}
}
Brady[] bunch = new Brady[6];bunch[0] = new Brady(“Bobby”, 8);bunch[1] = new Brady(“Cindy”, 7);bunch[2] = new Brady(“Peter”, 14);bunch[3] = new Brady(“Jan”, 13);bunch[4] = new Brady(“Marcia”, 15);bunch[5] = new Brady(“Greg”, 16);
for(int i = 0; i < bunch.length; i++){
System.out.println(“Name: “ + bunch[i].getName() +
“ Age: “ + bunch[i].getAge());
}
![Page 12: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/12.jpg)
Variable Size Declaration
In Java, we are not required to declare the size at compile time.
The size of an array can be specified as a variable as shown below:
![Page 13: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/13.jpg)
Passing Arrays to Methods
When arrays are passed as arguments, the address of the array is copied to the parameter.
Example:float arrayOne[] = new float[10];
![Page 14: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/14.jpg)
Arguments and Return Values
An array can be returned by a method. The return type must be an array in this
case.public int[ ] doubleValues(int [ ] inArray)
int[] array = new int[50];int[] y = doubleValues(array);
![Page 15: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/15.jpg)
Two-Dimensional Arrays
Two-dimensional arrays are useful in representing tabular information.
2-dimensional arrays are usually represented in a row-column approach
![Page 16: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/16.jpg)
Declaring and Creating a 2-D Array
Declaration <data type> [][] <variable> //variation 1 <data type> <variable>[][] //variation 2
Creation <variable> = new <data type> [ <size1> ][ <size2> ]
Example
int[][] array;
array
= new int[4][5];
3
2
1
0
43210 array
![Page 17: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/17.jpg)
More on 2-d arrays
A 2-d array is essentially an array of arrays
The subarrays may have different lengths
![Page 18: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/18.jpg)
2-d arrays example 1
final int ROWS = 5;final int COLUMNS = 5;char[][] board = new char[ROWS][COLUMNS];
for(int i = 0; i < board.length; i++){ for(int j=0; j<board[i].length; j++){
System.out.print(table[i][j] + “ “);}System.out.print(“\n”);
}
A B C D EF G H I JK L M N OP Q R S TU V W X YZ ! @ # $% ^ & * ?
![Page 19: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/19.jpg)
2-d arrays example 2
Subarrays of different lengths Executing
triangularArray = new double[4][ ];for (int i = 0; i < 4; i++)
triangularArray[i] = new double [i + 1];
results in an array that looks like:
![Page 20: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/20.jpg)
Limitation of Arrays
Once an array object is created, its size isfixed -- it cannot be changed.
To overcome this, we can use Lists or Maps.
![Page 21: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/21.jpg)
Lists and Maps
The java.util standard package containsdifferent types of classes for maintaining acollection of objects.
These classes are collectively referred toas the Java Collection Framework (JCF).
JCF includes classes that maintaincollections of objects as sets, lists, ormaps.
![Page 22: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/22.jpg)
The List interface
The List interface supports methods to maintain a collection of objects as a linear list.
We can add to, remove from, and retrieve objects in a given list.
A list does not have a set limit to thenumber of objects we can add to it.
The ArrayList class uses an array to manage data.
The LinkedList class uses a technique called linked-node representation.
![Page 23: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/23.jpg)
List Methods
Here are a few list methods:
![Page 24: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/24.jpg)
List example 1
list = new ArrayList();
list.add("a"); // Append an element to the list
// list - (a)
list.add(0, "b"); // Insert an element at the head of the list
// list - (b,a)
int size = list.size(); // Get the number of elements in the list
// size - 2
![Page 25: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/25.jpg)
List example 1 (contd.)
Object element = list.get(list.size()-1); // Retrieving the element at the end of the list
// element returned- a
list element = list.get(0); // Retrieving the element at the head of the list// element returned- b
boolean b = list.remove("b"); // Remove the first occurrence of an element
// b - true, list – (a)
element = list.remove(0); // Remove the element at a particular index// list – (), element - a
![Page 26: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/26.jpg)
JCF Maps
JCF includes the Map interface that supports methods to maintain a collection of objects (key, value) pairs called map entries.
![Page 27: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/27.jpg)
Map Methods
Here are a few Map methods:
![Page 28: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/28.jpg)
Map example
Map map = new HashMap(); // hash table
//Add key/value pairs to the map map.put("a", new Integer(1)); map.put("b", new Integer(2));map.put("c", new Integer(3));
// Get number of entries in map int size = map.size(); // size - 3
// Adding an entry whose key exists in the map causes the new value to replace the old value
Object oldValue = map.put("a", new Integer(9)); // oldValue - 1
![Page 29: CS180 Recitation 25th/26th October, 2007 Department of Computer Science, Purdue University.](https://reader030.fdocuments.us/reader030/viewer/2022032521/56649d5f5503460f94a3f3b8/html5/thumbnails/29.jpg)
Map example (contd)
int value = map.get(“a”);// value - 9
// Remove an entry from the map and return the value of the removed entry
oldValue = map.remove("c"); // 3