CS 231: Lab #1

Title image Spring 2018

Java and ArrayLists

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.


  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().

  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? In other words, given an array with elements in order, develop a method of creating an array with those elements in a randomized order. You don't have to do the shuffling in place. Come up with a design and implement it. In this week's assignment, shuffling a deck of playing cards involves creating a random permutation of the set of cards in the deck.

When you are done with this exercise, you can get started on the project.