Objectives

The goal of this lab period is to get you started on the current assignment. In particular, we'll look at how to import and use the ArrayList class, one of the abstract data types provided by the standard library.

Tasks

  1. Create a working directory for today's lab. Then start a Java file called Shuffle.java.

  2. All Java files should include a comment header, describing the file name, the author, and the date, e.g.,

    /**
     * File: Shuffle.java
     * Author: FirstName LastName
     * Date: MM/DD/YYYY
     */
    
  3. Import the ArrayList and Random classes into your file.

    import java.util.ArrayList;
    import java.util.Random;
    
  4. Create a class Shuffle that has a main function only.

    public static void main ( String[] args )
    
  5. In your main function, declare and allocate a new ArrayList object and a new Random object. Then use a for loop to add ten random integers between 0 and 99 to your ArrayList. Look at the documentation for the Random class and the ArrayList class to figure out how. Have your loop print out the random numbers (as they are generated) using System.out.println().

    Note: ArrayLists are generic classes, which means they are designed to contain any type of object. The class is defined as ArrayList<E>, where E is a type variable. You will be making an ArrayList that should contain Integers, so you specify Integer in place of E.

  6. Loop through your ArrayList again, get each value in turn and print it out using System.out.println(). Note that the ArrayList get() method returns an Object which you will need to cast to an Integer type if you want to store a reference to it. If you are willing to have your variable be declared to be of Object, you do not need to typecast.

  7. Loop 10 times and randomly remove one element from the ArrayList each time, printing out the value that was removed and the remaining values in the list (all on one line). You can use System.out.print() to send something to the command line without a newline. Note that you'll have to select a random number that is always strictly less than the number of elements left in the list.

  8. Change things around so that instead of assigning random numbers to the ArrayList in the beginning it assigns the values 1 through 10. Then run your program multiple times and look at its behavior.

  9. How can you programatically create a random permutation of a set of elements? Come up with two alternatives, and decide which is easier to program. In this week's assignment, shuffling a deck of playing cards involves creating a random permutation of the set of cards in the deck.

xkcd

xkcd.com


When you are done with the lab exercises, you may start on the rest of the project.


© 2017 Caitrin Eaton.