Presentation is loading. Please wait.

Presentation is loading. Please wait.

Random, Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc.

Similar presentations


Presentation on theme: "Random, Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc."— Presentation transcript:

1 Random, Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc.

2 Conditionals and Loops So far, we’ve looked at: –making decisions with if –how to compare data –Boolean expressions Today we’ll look at: –Generating lists of random numbers –Storing lists (collections) of objects –repeat processing steps in a loop Copyright © 2012 Pearson Education, Inc.

3 RANDOM Copyright © 2012 Pearson Education, Inc.

4 The Random Class The Random class is part of the java.util package It provides methods that generate pseudorandom numbers A Random object performs complicated calculations based on a seed value to produce a stream of seemingly random values Copyright © 2012 Pearson Education, Inc.

5

6 //******************************************************************** // RandomNumbers.java Author: Lewis/Loftus // // Demonstrates the creation of pseudo-random numbers using the // Random class. //******************************************************************** import java.util.Random; public class RandomNumbers { //----------------------------------------------------------------- // Generates random numbers in various ranges. //----------------------------------------------------------------- public static void main (String[] args) { Random generator = new Random(); int num1; float num2; num1 = generator.nextInt(); System.out.println ("A random integer: " + num1); num1 = generator.nextInt(10); System.out.println ("From 0 to 9: " + num1); continued

7 Copyright © 2012 Pearson Education, Inc. continued num1 = generator.nextInt(10) + 1; System.out.println ("From 1 to 10: " + num1); num1 = generator.nextInt(15) + 20; System.out.println ("From 20 to 34: " + num1); num1 = generator.nextInt(20) - 10; System.out.println ("From -10 to 9: " + num1); num2 = generator.nextFloat(); System.out.println ("A random float (between 0-1): " + num2); num2 = generator.nextFloat() * 6; // 0.0 to 5.999999 num1 = (int)num2 + 1; System.out.println ("From 1 to 6: " + num1); } Sample Run A random integer: 672981683 From 0 to 9: 0 From 1 to 10: 3 From 20 to 34: 30 From -10 to 9: -4 A random float (between 0-1): 0.18538326 From 1 to 6: 3

8 Examples – code to outcome Copyright © 2012 Pearson Education, Inc. Given a Random object named gen, what range of values are produced by the following expressions? gen.nextInt(25) gen.nextInt(6) + 1 gen.nextInt(100) + 10 gen.nextInt(50) + 100 gen.nextInt(10) – 5 gen.nextInt(22) + 12 Range? 0 to 24 1 to 6 10 to 109 100 to 149 -5 to 4 12 to 33

9 Examples – outcome to code Copyright © 2012 Pearson Education, Inc. Write an expression that produces a random integer in the following ranges: gen.nextInt(13) gen.nextInt(20) + 1 gen.nextInt(6) + 15 gen.nextInt(11) – 10 Range 0 to 12 1 to 20 15 to 20 -10 to 0

10 COLLECTIONS & LOOPS Copyright © 2012 Pearson Education, Inc.

11 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Grouping (i.e., collecting) objects Many applications involve collections of objects: –Personal organizers. –Library catalogs. –Student-record system. The number of items to be stored varies. –Items added. –Items deleted.

12 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Example: A personal notebook Notes may be stored. Individual notes can be viewed. There is no limit to the number of notes. It will tell how many notes are stored. Consider a Notebook project.

13 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling import java.util.ArrayList; /** *... */ public class Notebook { // Storage for an arbitrary number of notes. private ArrayList notes; /** * Perform any initialization required for the * notebook. */ public Notebook() { notes = new ArrayList (); }... } import java.util.ArrayList; /** *... */ public class Notebook { // Storage for an arbitrary number of notes. private ArrayList notes; /** * Perform any initialization required for the * notebook. */ public Notebook() { notes = new ArrayList (); }... } the type of collection the type of objects in the collection

14 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Object structures with collections

15 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Adding a third note

16 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Features of the collection It increases its capacity as necessary. It keeps a private count ( size() method). It keeps the objects in order. Details of how all this is done are hidden. –Does that matter? Does not knowing how prevent us from using it?

17 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Using the collection public class Notebook { private ArrayList notes;... public void storeNote(String note) { notes.add(note); } public int numberOfNotes() { return notes.size(); }... } public class Notebook { private ArrayList notes;... public void storeNote(String note) { notes.add(note); } public int numberOfNotes() { return notes.size(); }... } Adding a new note Returning the number of notes (delegation)

18 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Index numbering

19 public void showNote(int noteNumber) { if(noteNumber < 0) { // This is not a valid note number. } else if(noteNumber < numberOfNotes()) { System.out.println(notes.get(noteNumber)); } else { // This is not a valid note number. } public void showNote(int noteNumber) { if(noteNumber < 0) { // This is not a valid note number. } else if(noteNumber < numberOfNotes()) { System.out.println(notes.get(noteNumber)); } else { // This is not a valid note number. } Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Retrieving an object Index validity checks Retrieve and print the note

20 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Removal may affect numbering notes.remove(1);

21 Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling Removal may affect numbering notes.remove(1);

22 The ArrayList Class ( java.util.ArrayList) An ArrayList object stores a list of objects, and is often processed using a loop An ArrayList object grows and shrinks as needed, adjusting its capacity as necessary You can reference each object in the list using a numeric index Copyright © 2012 Pearson Education, Inc.

23 The ArrayList Class Index values of an ArrayList begin at 0 (not 1): 0"Bashful" 1"Sleepy" 2"Happy" 3"Dopey" 4"Doc" Elements can be inserted and removed The indexes of the elements adjust accordingly Copyright © 2012 Pearson Education, Inc.

24 ArrayList Methods Some ArrayList methods: boolean add (E obj) void add (int index, E obj) Object remove (int index) Object get (int index) boolean isEmpty() int size() Copyright © 2012 Pearson Education, Inc.

25 The ArrayList Class The type of object stored in the list is established when the ArrayList object is created: ArrayList names = new ArrayList (); ArrayList list = new ArrayList (); This makes use of Java generics, which provide additional type checking at compile time An ArrayList object cannot store primitive types, but that's what wrapper classes are for (Integer, Double, Character, etc.) See Beatles.java Copyright © 2012 Pearson Education, Inc.

26 //******************************************************************** // Beatles.java Author: Lewis/Loftus // // Demonstrates the use of a ArrayList object. //******************************************************************** import java.util.ArrayList; public class Beatles { //----------------------------------------------------------------- // Stores and modifies a list of band members. //----------------------------------------------------------------- public static void main (String[] args) { ArrayList band = new ArrayList (); band.add ("Paul"); band.add ("Pete"); band.add ("John"); band.add ("George"); continue

27 Copyright © 2012 Pearson Education, Inc. continue System.out.println (band); int location = band.indexOf ("Pete"); band.remove (location); System.out.println (band); System.out.println ("At index 1: " + band.get(1)); band.add (2, "Ringo"); System.out.println ("Size of the band: " + band.size()); for (String name : band) { System.out.println (name); }

28 Copyright © 2012 Pearson Education, Inc. continue System.out.println (band); int location = band.indexOf ("Pete"); band.remove (location); System.out.println (band); System.out.println ("At index 1: " + band.get(1)); band.add (2, "Ringo"); System.out.println ("Size of the band: " + band.size()); for (String name : band) { System.out.println (name); } Output [Paul, Pete, John, George] [Paul, John, George] At index 1: John Size of the band: 4 Paul John Ringo George

29 Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional statements, they are controlled by boolean expressions Java has three kinds of repetition statements: while, do, and for loops Like if statements, if you want to repeat more than one line, you will need to use curly braces ({}) Copyright © 2012 Pearson Education, Inc.

30 For-each Loops Simplifies repetitive processing of items in a collection For example, suppose bookList is an ArrayList object: ArrayList bookList = new ArrayList (); The following loop will print each book: for (Book myBook : bookList) System.out.println (myBook); Copyright © 2012 Pearson Education, Inc.

31 Logic of a for-each loop Statements to process each item true false Are there more items in the collection?

32 Quick Check Copyright © 2012 Pearson Education, Inc. Write a for-each loop that prints all of the Student objects in an ArrayList object called roster. for (Student student : roster) System.out.println (student);

33 Other Collection Types List (e.g., java.util.ArrayList ) –Ordered elements –Allows duplicates Set (e.g., java.util.HashSet ) –Unordered elements –No duplicates Map (e.g. java.util.HashMap ) –Unordered elements, stored as key-value pairs –No duplicate keys (can be duplicate values) Copyright © 2012 Pearson Education, Inc.

34 Using collections example Copyright © 2012 Pearson Education, Inc.

35 Using collections example Copyright © 2012 Pearson Education, Inc.

36 Using collections example Copyright © 2012 Pearson Education, Inc.

37 Exercise: iTunes class Create a class Song with –4 Fields: private String title; private String artist; private String album; private double price; –2 Constructors: default, & with a parameter for each field –9 Methods: getters & setters for each field, and toString Create an iTunes class that stores a list of songs as an ArrayList, and initialize the list to be empty –Create a method addSong to the iTunes class Create a main method that adds 3 songs to iTunes (don’t use the default constructor) Copyright © 2012 Pearson Education, Inc.

38 Group Exercise: iTunes class Create a print method that prints the entire song list using a for each loop Create a getTotalPrice method that returns the total cost of the entire song list Create a getMinimumPrice method that returns the song with the lowest price in the list Copyright © 2012 Pearson Education, Inc.

39 Homework Finish creating the Song class to prep for next week’s lab Work on Project 1 CodingBat Copyright © 2012 Pearson Education, Inc.


Download ppt "Random, Collections & Loops Chapter 5 Copyright © 2012 Pearson Education, Inc."

Similar presentations


Ads by Google