2021 AP CSA FRQ 3: ClubMembers - Complete Solution

2021 AP CSA FRQ 3: ClubMembers

Topic: ArrayList & Object Manipulation

Skills: ArrayList operations, filtering

Unit: Unit 4 (Data Collections) | Points: 9

Part (a)

Write addMembers.

Try it first!
public void addMembers(String[] names, int gradYear) {
    for (String name : names)
        memberList.add(new MemberInfo(name, gradYear, true));
}

Part (b)

Write removeMembers.

public ArrayList removeMembers(int year) {
    ArrayList removed = new ArrayList();
    int i = 0;
    while (i < memberList.size()) {
        MemberInfo m = memberList.get(i);
        if (m.getGradYear() <= year && !m.inGoodStanding())
            removed.add(memberList.remove(i));
        else {
            i++;
        }
    }
    return removed;
}

Key Concepts

  • Create MemberInfo with true for good standing
  • While loop for removal
  • Only increment when not removing

Common Mistakes

  • For-each with removal
  • Wrong removal condition

Author: Tanner Crow, AP CS Teacher (11+ years)

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.