В следующем коде мне нужно было прочитать список из пяти имен учеников и оценок для пяти викторин для каждого ученика, который загружает имена в ArrayList типа String и метки викторины в стиле ArrayList Integer. Я нарушил эту проблему двумя разными ArrayLists, и я стараюсь совместить их, но не уверен.Объединение массивов в Java
Следующий код читает пять студентов имена и загружает имена в ArrayList типа String,
import java.util.ArrayList;
public class QuizAveragee
{
public static void main(String[] args) {
final int NAMELIMIT = 5 ;
final int QUIZLIMIT = 5 ;
ArrayList<String> sNames = new ArrayList<String>();
ArrayList<String> sFamily = new ArrayList<String>();
Scanner in = new Scanner(System.in);
// Load the five names of the students in the arraylist
for(int i = 1; i<=NAMELIMIT; i++)
{
String[] input = in.nextLine().split("\\s+");
sNames.add(input[0]);
sFamily.add(input[1]);
}
for(int i=0; i<NAMELIMIT; i++)
{
System.out.println("Name: " + sNames.get(i) + " " + sFamily.get(i));
}
System.out.println();
}
}
со следующими входными:
Sally Mae 90 80 45 60 75
Charlotte Tea 60 75 80 90 70
Oliver Cats 55 65 76 90 80
Milo Peet 90 95 85 75 80
Gavin Brown 45 65 75 55 80
Он генерирует:
Name: Sally Mae
Name: Charlotte Tea
Name: Oliver Cats
Name: Milo Peet
Name: Gavin Brown
Затем мне нужно было сделать часть программы, которая будет читать в пяти викторинах для каждого ученика и загрузки отметки викторины в массиве ArrayList типа integer. Это то, что я создал для этой части.
import java.util.ArrayList;
import java.util.Scanner;
public class heya
{
public static final int QUIZLIMIT = 5;
public static Scanner readQuiz;
public static void main(String[] args)
{
readQuiz = new Scanner(System.in);
while (readQuiz.hasNextLine()) {
ArrayList<Integer> quizMarks = readArrayList(readQuiz.nextLine());
computerAverage(quizMarks);
}
}
// Load quiz marks
public static ArrayList<Integer> readArrayList(String input)
{
ArrayList<Integer> quiz = new ArrayList<Integer>();
Scanner readQuiz = new Scanner(input);
int i = 1;
while (i <= QUIZLIMIT)
{
if (readQuiz.hasNextInt()) {
quiz.add(readQuiz.nextInt());
i++;
}
else {
readQuiz.next(); // Toss the next read token
}
}
return quiz;
}
// Compute the average of quiz marks
public static void computerAverage(ArrayList<Integer>quiz)
{
int total = 0 ;
for(Integer value : quiz)
{
total = total + value;
}
System.out.println("Quiz Avg: "+ (total/QUIZLIMIT));
}
}
, который дает выход:
Quiz Avg: 70
Quiz Avg: 75
Quiz Avg: 73
Quiz Avg: 85
Quiz Avg: 64
Однако, мне нужно, чтобы объединить эти программы, которые я не совсем уверен, как это сделать. Данный вход:
Sally Mae 90 80 45 60 75
Charlotte Tea 60 75 80 90 70
Oliver Cats 55 65 76 90 80
Milo Peet 90 95 85 75 80
Gavin Brown 45 65 75 55 80
должен дать:
Name: Sally Mae Quiz Avg: 70
Name: Charlotte Tea Quiz Avg: 75
Name: Oliver Cats Quiz Avg: 73
Name: Milo Peet Quiz Avg: 85
Name: Gavin Brown Quiz Avg: 64
где я могу добавить это в свой код? мы havent использовали private либо, к сожалению, –
'int average' должно быть' double average'. Вам также не хватает закрывающей скобки для main. –
Просто замените старый метод на тот, который я переписал. Вы можете объявить частный метод так же, как вы объявляете общедоступные методы в своем существующем коде, просто добавьте их ниже основного метода. – nhouser9