2015-05-12 87 views
-2

我需要計算並打印MemberOfCongress ArrayList內的民主黨人,共和黨人和獨立人士的人數。我已經知道我需要循環播放列表,但是,我的問題是,如何計算每種類型的聚會中有多少? 這是我到目前爲止。如何計算Arraylist中的項目?

public int countNumDemocrats() 
{ 
    int numDemocrats = 0; 
    int numRepblican = 0; 
    int numIndepent = 0; 
    for (MemberOfCongress MemeberParty : members) { 
     if (party.is"D") { 
      numDemocrats++; 
     } 
    } 
    return numDemocrats; 
} 
+0

如果你使用java8,那麼你可以使用java lambda來做到這點,否則你的循環很好 –

+0

你需要在你的循環中爲共和黨和獨立黨做同樣的事情。另外,您需要添加參數才能返回所有3個數字。你需要公平。 – Tim3880

+1

「party.is」D「'是什麼意思?這不是適當的Java代碼。你需要在'MemeberParty'上調用一些方法來檢查它是否是民主人士。 – traveh

回答

0

你的循環是好的,只添加另2例,如:

else if (party.is"R"){ 
//increment R 
} 
else if (party.is"I"){ 
//increment I 
} 

假設party.is 「d」 檢查當前MemeberParty是d或沒有。個人而言,我會使用類似if (MemeberParty.party.equals("D")){

,你可能會想返回數組

int[] myIntArray = {numDemocrats, numRepub, numIndep}; 
return myIntArray; 
0

試試這個:

public int countObjectsOfThePassedType(Class<?> clazz, List<?> objects) { 

    int counter = 0; 

    for (Object obj : objects) { 
     if (obj.getClass() == clazz) { 
      counter++; 
     } 
    } 

    return counter; 
} 

的方法,調用時,例如,與Democrats.class作爲第一個參數,將返回列表中的民主人數。

+0

這是根據_heavy_假設每個黨是不同的類.. – chancea