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) );
}
}
/* --------------------------------------------------------
WARNING: Removal is tricky, because when after call:
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 void addMember( MemberInfo mem )
{
memberList.add( mem );
}
public String toString()
{
return memberList.toString();
}
}
|