ArrayLists and Iterators

Read this chapter about lists and the useful methods that are available for adding and inserting elements into a list. 

27. Test Program


Answer:

Yes. The method combines several steps into one statement.

Test Program

These ideas might be confusing. Here is a program that shows how how the pieces fit together. Copy this program to a file, compile it, and run it:

import java.util.* ;

class Entry
{
  private String name;
  private String number;

  // constructor
  public Entry( String n, String num )
  {
    name = n; number = num;
  }

  // methods
  public String getName()
  {
    return name ;
  }

  public String getNumber()
  {
    return number ;
  }

  public boolean equals( Object other )
  {
    return getName().equals( ((Entry)other).getName() );
  }

  public String toString()
  {
    return "Name: " + getName() + "; Number: " + getNumber() ;
  }
 
}

public class PhoneBookTest
{
  public static void main ( String[] args)
  {
    ArrayList<Entry> phone = new ArrayList<Entry>();

    phone.add( new Entry( "Amy", "123-4567") );
    phone.add( new Entry( "Bob", "123-6780") );
    phone.add( new Entry( "Hal", "789-1234") );
    phone.add( new Entry( "Deb", "789-4457") );
    phone.add( new Entry( "Zoe", "446-0210") );

    // Look for Hal in phone. The indexOf() method uses the
    // equals(Object) method of each object in the list.
    
    Entry target = new Entry( "Hal", null );
    
    int spot = phone.indexOf( target ) ;

    System.out.println( "indexOf returns: " + spot ) ;
  }
}

phone is a list of Entry references. The program searches that list for "Hal" .

It does so by creating a target Entry with "Hal" for the name, but null for the phone number. Then the indexOf() method of phone looks for a match.

The indexOf() method uses equals() to compare successive objects in the list with the target object. Because equals() looks only at the name of the two entries, the null in the target object does not matter.


Question 26:

What will the program write?