Arrays

Arrays have a few important operations:

  • Initializing (int[] arr = new int[10];)
  • Indexing (arr[5])
  • Getting length (arr.length)
  • Iterating (using loops to access elements)

ArrayLists

ArrayLists aren’t of fixed length and can be more versatile:

  • Initializing (ArrayList<Integer> list = new ArrayList<>();)
    • Note that you can’t use primitive types for the elements
  • Getting value (list.get(index))
  • Inserting value at end (list.add(element))
  • Inserting value at an index (list.add(index, element))
  • Getting index of element (list.indexOf(element))
  • Checking if elmenet is in ArrayList (list.contains(element))
  • Removing element at index (list.remove(int index))
  • Removing element with value (list.remove(Object value))
  • Set new value at an index (list.set(index, element))
  • Getting size (list.size())
  • Convert to primitive array (list.toArray())

Example - 2020 FRQ Part 3

public class ReviewCollector {
    private ArrayList<ProductReview> reviewList;
    private ArrayList<String> productList;

    public ReviewCollector() {
        reviewList = new ArrayList<ProductReview>();
        productList = new ArrayList<String>();
    }

    public void addReview(ProductReview prodReview) {
        reviewList.add(prodReview);
        productList.add(prodReview.getName());
    }

    /** Returns the number of good reviews for a given product name, as described in part (b). */

    public int getNumGoodReviews(String prodName) {
        int answer = 0;
        for (ProductReview review : reviewList) {
            if (review.getName().equals(prodName)) {
                if (review.getReview.contains("best")) {
                    answer++;
                }
            }
        }
        return answer;
    }
}

public class ProductReview {
    private String name;
    private String review;

    public ProductReview(String pName, String pReview) {
        name = pName;
        review = pReview;
    }

    public String getName() {
        return name;
    }

    public String getReview() {
        return review; 
    }
}