AP CSA 4.8 Exercise 2: ArrayList Methods Applied Practice

Unit 4: Data Collections · Lesson 4.8 · Exercise 2

ArrayList Methods: Applied Practice

Six scenarios on add, remove, set and get, and the two places an int argument means something completely different.

How this one is different

The exercise-1 editor asks you to call these methods. These six ask what each one returns, what it shifts, and why remove has a trap that no other method has.

Applied Practice

6 questions · scenario driven · every answer is recorded for your teacher

Question 1 of 6Analyze
An ArrayList holds [10, 20, 30, 40]. A program calls list.remove(2).
What is removed?
Incorrect. remove takes one position and removes one element.
Incorrect. That is remove(Object). Reaching it requires remove(Integer.valueOf(2)), and this call is not it.
Correct. Correct. With an Integer list, remove(int) and remove(Object) are both applicable and the int overload wins, which is a genuine and famous trap.
Incorrect. The call is by position, and position 2 exists.
Question 2 of 6Apply
A list holds [A, B, C, D] and the program calls list.remove(0).
What is the state afterward?
Incorrect. ArrayList leaves no holes. That is the difference from an array.
Correct. Correct, and the shifting is exactly why removing while looping forward skips elements.
Incorrect. remove mutates the list and returns the removed element.
Incorrect. The size shrinks by one. No padding occurs.
Question 3 of 6Analyze
A program needs to replace the element at index 1 without changing the list size.
Which call does that?
Correct. Correct. set is the only one of these that leaves the size alone.
Incorrect. That deletes the element and shrinks the list.
Incorrect. get returns a value; it is not an assignable location. This does not compile.
Incorrect. add with an index INSERTS, growing the list and shifting the rest right.
Question 4 of 6Apply
A student declares ArrayList scores = new ArrayList();
What happens?
Incorrect. It never reaches the point of holding anything.
Incorrect. Growth is unrelated to the reason this fails.
Incorrect. Primitive type arguments are rejected outright.
Correct. Correct, and autoboxing is what makes the Integer version feel like it stores ints anyway.
Question 5 of 6Evaluate
A program calls list.get(list.size()) on a list of 5 elements.
What is the outcome?
Incorrect. get never modifies the list.
Incorrect. The last element is at size() - 1, which is index 4.
Correct. Correct. This is the array off-by-one in ArrayList form, with a different exception name.
Incorrect. An out of range index throws rather than returning a sentinel.
Question 6 of 6Analyze
A method must decide between an array and an ArrayList for a collection whose size changes constantly as the program runs.
Which is the deciding factor?
Incorrect. An array is generally faster. Convenience, not speed, is what ArrayList buys.
Correct. Correct. Fixed versus growable is the entire basis for the choice.
Incorrect. Arrays hold either. Object arrays are ordinary.
Incorrect. ArrayList carries more overhead, not less.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]