2015-05-12 2 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 лямбда, иначе ваша петля прекрасна –

+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

Это зависит от того, что каждая сторона - это другой класс. – chancea

Смежные вопросы