2

私はクラスラボに取り組んでおり、bwcomw は 1 つのメソッドを作成する必要があります。

Member[] getMembersByYear(int firstYear, int last year)– 指定された 2 年の間に加入したすべてのメンバーを検索して返します。このメソッドは、メンバーを Java 1 次元配列で返します。配列に空のスロットがあってはなりません。

どうすればいいのか少し悩んでいますが、アドバイスをいただければ幸いです。これまでに書いたものは次のとおりです。

public class Club
{
// Define any necessary fields here ...
private ArrayList <Member> members;

/**
 * Constructor for objects of class Club
 */
public Club()
{
    // Initialise any fields here ...
    members = new ArrayList <Member>();
}

/**
 * Add a new member to the club's list of members.
 * @param member The member object to be added.
 */
public void join(Member member)
{
    members.add(member);
}

/**
 * @return The number of members (Member objects) in
 *         the club.
 */
public int numberOfMembers()
{
    if(members.size() > 0){
        return members.size(); 
    }
    else{
    return 0;
}
}

public void showMembers(){
    for(Member display: members){
        System.out.println(display.toString());

    }
}

public void showMembersByYear(int year){
    for(Member byYear: members){
         if(byYear.getYear() > 0){
             showMembers();
            }

    }
}

public Member[] getMembersByYear(int firstYear, int lastYear)
{
    Member checker = new Member();                                        //does not work, no constructor member() exists
    while((firstYear <= checker.getYear()) && (lastYear >= checker.getYear())){

    }


}

public void removeMembersByYear(int year){
    Iterator it = members.iterator();



}
}
4

2 に答える 2

0

わかった。試してみてよかったです!まず、メソッドでArrayList. 次に、members配列をループする場合です。年が指定された範囲内にある場合は、その new に追加する必要がありますArrayList。次に、単純にArrayList.toArrayメソッドを返します。何かのようなもの:

 public Member[] getMembersInYear(int firstYear, int secondYear)
 {
     ArrayList<Member> membersInRange = new ArrayList<Member>();
     for(every member in members) {
         if(is in year) {
             membersInRange.add(currentMember);
         }
     }
     return membersInRange.toArray();
 }

これにより、null のない配列が返されます。この配列には、年が ~ の間にあるメンバーのみが含まれfirstYearますsecondYear

于 2013-04-21T10:49:07.217 に答える