2014-09-02 53 views
1

假設我讓玩家創建團隊並創建一個團隊調用團隊類的新實例,該實例具有一個名爲成員的數組列表。編輯對象的特定實例

現在在主要課程中,如何在被邀請後向球隊添加球員?我在團隊類中有一個addPlayer方法,只需將它們添加到數組列表中,但是如果當前有多個團隊類實例(其他玩家創建了團隊),它會如何知道要加入哪個團隊呢?

我確實在創建實例時設置的teamLeader在團隊類中有一個變量,如果這可以幫助我編輯某個實例的話。

Team team = new Team(this, leader); 

任何幫助appreiciated

+3

你可以發佈'Team'類的源代碼和你如何調用它的部分嗎? – reporter 2014-09-02 10:55:50

回答

1

你需要一個標識符來唯一區分每個團隊,你可以使用該標識的球隊存儲在Map。事情是這樣的:

Map<String,Team> teamMap = new HashMap<String,Team>(); 

選擇的密鑰類型按照您的要求,我選擇了字符串爲例

+0

是的,我以爲我會爲每個球隊需要一些獨特的ID,所以我想到teamLeader變量是球隊的標識符,我只是不知道我會如何加入一個基於團隊領導者的團隊,比如。添加球員到團隊已經制作的實例,其中teamLeader = someplayer – user3439600 2014-09-02 11:01:18

0

根據你的設計,你需要讓所有的球隊在列表創建之後。

ArrayList teamsList=new ArrayList(); 
Team team = new Team(this, leader); 
teamsList.add(team); 

然後通過addPlayer方法遍歷所有團隊,然後比較領導者,然後添加一個球員。像這樣的東西 -

public void addPlayer (Player player,String leader){ 

for(int i=0; i<teamListSize;i++) 

    Team tempTeam=teamsList.get(i); 

    if(tempTeam.getLeader().equalsIgnoreCase(leader)){ 

     tempTeam.add(player); 
     break; 
    } 

} 
+0

看起來不錯我會嘗試這一點,我想過在創建時存儲所有團隊並循環播放它們,但我不確定是否可以遍歷所有當前的對象實例 – user3439600 2014-09-02 11:19:26

+0

因此,teamsList數組不應該在Team類中,而是從Team類中的appPlayer訪問它?我在我的主類中創建實例 – user3439600 2014-09-02 11:26:13

+0

如果您將teamsList作爲實例變量(在main之外),它可以在addPlayer中訪問。 – 2014-09-02 11:27:39