import java.util.*; public class ClubMembers { private ArrayList memberList; public ClubMembers( ) { memberList = new ArrayList(); } public void addMembers( String[] names, int gradYear ) { for( int i = 0; i < names.length; i++ ) { memberList.add( new MemberInfo(names[i], gradYear, true) ); } } public void addMember( MemberInfo mem ) { memberList.add( mem ); } /* -------------------------------------------------- Removal is tricky, because when you do arrayList.remove(i) A new arrayList element will be in spot i !! -------------------------------------------------- */ public ArrayList removeMembers( int year ) { ArrayList goodStanding = new ArrayList(); int i = 0; while(i < memberList.size()) // Done when spot i does not exist { /* ======================================== Test if member i has graduated ======================================== */ if( memberList.get(i).getGradYear() <= year ) { MemberInfo removed = memberList.remove(i); // Remove member if( removed.inGoodStanding() ) goodStanding.add(removed); // Add to return if good standing } else { i++; // Keep this member (not graduated) } } return goodStanding; } public String toString() { return memberList.toString(); } }