У меня есть 2D-массив, который сохраняет ответ «да»/«нет», когда пользователь голосует, поэтому для моей строки строки 1 задан вопрос 1, затем, когда возникает вопрос к системе он переходит в строку 2 и т. д. И идентификатор избирателя - это столбец, мне нужно подсчитать количество ответов «да/нет», чтобы получить количество голосов по каждому вопросу.цикл через 2D-массивы и подсчет результатов для каждой строки отдельно (Java)
Мне удалось пропустить весь массив и подсчитать ответы «да/нет» (что будет работать, если мне нужен только один вопрос), однако я не могу заставить свою систему печатать результаты для каждой строки (вопрос) в цикле.
Вот мои массивы, которые хранят ответы
public static List<String[][]> voteList = new ArrayList<String[][]>();
public static String[][] arrayOfAnswers = new String[100][100];
public static List<Referendum> referendumList= new ArrayList<Referendum>();
Это, как я храню ответы
System.out.println("Enter your first name here: ");
String first = Scanner.nextLine();
System.out.println("Enter your surname here: ");
String surname = Scanner.nextLine();
System.out.println("Enter your city here: ");
String city = Scanner.nextLine();
User user1=new User();
int vid=user1.getTheIndex(first, surname, city);
System.out.println("Enter your answer for the question: ");
String theanswer = Scanner.nextLine();
if(theanswer.toUpperCase().equals("YES"))
{
arrayOfAnswers[qid][vid]=theanswer;
voteList.add(arrayOfAnswers);
System.out.println("Thanks for voting. \n");
}
else if(theanswer.toUpperCase().equals("NO"))
{
arrayOfAnswers[qid][vid]=theanswer;
voteList.add(arrayOfAnswers);
System.out.println("Thanks for voting. \n");
}
else
{
System.out.println("You must enter a yes and no answer, please try again.");
}
И это цикл, где я пытаюсь сосчитать ответы «да/нет» для каждой строки (вопрос)
for (Referendum q: Menu.referendumList)
{
int i=0;
int yesCount = 0;
int noCount = 0;
for(int j=0; j<Menu.arrayOfAnswers[i].length; j++)
{
if(Menu.arrayOfAnswers[i][j] != null)
{
if(Menu.arrayOfAnswers[i][j].equals("yes"))
{
yesCount++;
}
else if(Menu.arrayOfAnswers[i][j].equals("no"))
{
noCount++;
}
}
}
System.out.print("Referendum : " + q.question + " \n");
System.out.println("Votes yes: " + yesCount);
System.out.println("Votes no: " + noCount + "\n");
}
Неужели мне не нужен мой 2D-массив с помощью этого метода? это имеет смысл, хотя и кажется более логичным подходом – JHargreaves
Нет, вам это не понадобится. Но опять же, это зависит. Мой подход - скорее стиль ООП ... – ACV