Значения Java Max и Min — два подходаJAVA

Программисты JAVA общаются здесь
Anonymous
Значения Java Max и Min — два подхода

Сообщение Anonymous »

У меня есть задание, которое я уже выполнил. но моему профессору мой подход не понравился.

напишите программу на Java, которая считывает любое количество строк из входного файла.
Входной файл состоит из одного столбца для имен игроков и рядом с ним столбца для очков для каждого игрока.
Найдите
количество прочитанных значений
общую сумму
средний балл (до 2 десятичных знаков)
максимальное значение вместе с соответствующим именем.
минимальное значение вместе с соответствующим именем.
подсказка: обрабатывайте каждый элемент данных по мере его чтения и двигайтесь дальше. Не сохраняйте все данные в своей программе.

Я написал программу, используя 2 списка массивов для хранения данных, а затем отсортировал список массивов в порядке возрастания, а затем выбрал первые и последние данные в отсортированном списке массивов.
Профессору не понравилось, как я работал с программой, потому что он не хочет, чтобы я потреблял так много оперативной памяти, и попросил меня использовать подсказку, упомянутую выше.
Я не уверен, каким подходом мне следует подойти к проблеме. любое предложение будет оценено.
вот часть входного файла

9290 alebam0

9390 davige0

9490 hassa0

9590 luxtt0

9690 raflra0

9790 smithbl0

9890 hallasm0

9990 afflrj0

90 amosre0

190 cottat0

290 luzijc0

3553 philel01

4553 poulcp02
... (тысячи строк)
А вот и мой код
import java.util.*;
import java.io.*;
import java.text.DecimalFormat;

public class GCGC
{
public static void main(String[] args) throws IOException
{

ArrayList names = new ArrayList();
ArrayList scores = new ArrayList();
int nRead = 0; // hold the number of lines
int ListSize; // hold the size of arraylist

final String INPUT_FILE = "/Users/Ali/Desktop/HW1_InputFile.txt";
final String OUTPUT_FILE = "/Users/Ali/Desktop/HW1_Output.txt";

FileWriter fw = new FileWriter(OUTPUT_FILE,false);
PrintWriter pw = new PrintWriter(fw);
File f = new File(INPUT_FILE);
Scanner input = new Scanner(f);

// read all data from input line by line
while (input.hasNext() ) {
scores.add(input.nextInt());
names.add(input.nextLine().trim());
nRead++;
}

ListSize = scores.size(); // size of the arraylist would be used throw the program

int scoresArray[] = new int [ListSize];
String namesArray [] = new String [ListSize];

// This for loop will convert the arraylist into an array
for (int i =0; i

Вернуться в «JAVA»