ArrayList Loop Patterns


Sum Some (Process Some)

public int numTopReviews()
{
   int topReviews = 0;   // count

   // Look at all reviews ...
   for ( MovieReview review : reviewList )
   {
      // Only add top reviews to count
      if ( review.getRating() == 5 )
          topReviews++;
   }

   return topReviews;
}
public int numTopReviews()
{
   int topReviews = 0;   // count

   // Look at all reviews ...
   for ( int i = 0; i < reviewList.size(); i++ )
   {
      // Only add top reviews to count
      MovieReview review = reviewList.get(i);
      if ( review.getRating() == 5 )
          topReviews++;
   }

   return topReviews;
}

Search

public int ratingByReviewer(String reviewer)
{
   // Look at all reviews ...
   for ( MovieReview review : reviewList )
   {
      // If this is the right reviewer,
      //    return this reviewer's rating
      if ( review.getReviewer().equals(reviewer) )
         return review.getRating();
   }

   // Reviewer not found, so no rating
   return 0;
}
public int ratingByReviewer(String reviewer)
{
   // Look at all reviews ...
   for ( int i = 0; i < reviewList.size(); i++ )
   {
      // If this is the right reviewer,
      //    return this reviewer's rating
      MovieReview review = reviewList.get(i);
      if ( review.getReviewer().equals(reviewer) )
         return review.getRating();
   }

   // Reviewer not found, so no rating
   return 0;
}

Search with Multiple Results

public ArrayList<String> whoGaveTopRatings()
{
   // Create empty list for multiple results
   ArrayList<String> niceReviewers = new ArrayList<String>();

   // Look at all reviews ...
   for ( MovieReview review : reviewList )
   {
      // If this is a top review, add
      //    reviewer name to the list
      if ( review.getRating() == 5 )
         niceReviewers.add(review.getReviewer();
   }

   // Return the list of all results
   return niceReviewers;
}
public ArrayList<String> whoGaveTopRatings()
{
   // Create empty list for multiple results
   ArrayList<String> niceReviewers = new ArrayList<String>();

   // Look at all reviews ...
   for ( int i = 0; i < reviewList.size(); i++ )
   {
      // If this is a top review, add
      //    reviewer name to the list
      MovieReview review = reviewList.get(i);
      if ( review.getRating() == 5 )
         niceReviewers.add(review.getReviewer();
   }

   // Return the list of all results
   return niceReviewers;
}

Alyce Brady, Kalamazoo College