Метод arrayList, который читает файл и возвращает ArrayList из собранных данных. Как я могу вызвать этот массив в моем основном методе или других? - PullRequest
0 голосов
/ 21 апреля 2020

Как спрашивает заголовок, мне нужна помощь в доступе к этому возвращенному массиву из основного и других методов. Я проверяю, пытаясь распечатать его, но без ошибок там, где это дано, и теперь я пытаюсь напечатать его размер, но возвращается в 0. Любая помощь будет оценена.

public ArrayList<ITemperature> readDataFromFile(String fileName) throws FileNotFoundException 
{
    File file = new File("world_temp_2000-2016.csv");
    Scanner inFile = new Scanner(file);
    ArrayList<ITemperature> temp = new ArrayList<ITemperature>();

    while(inFile.hasNextLine())
    {

        String line = inFile.nextLine();
        String[] data = line.split(",");

        double tempRead = Double.parseDouble(data[0]);
        int year = Integer.parseInt(data[1]);
        String month = data[2];
        String country = data[3];
        String countryCode = data[4];

        ITemperature t = new Temperature(tempRead, year, month, country, countryCode);
        temp.add(t);

    }

    inFile.close();
    return temp;

}

public static void main(String[] args)
{
    ArrayList<ITemperature> temp = new ArrayList<ITemperature>();
    System.out.println(temp.size());
}

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Когда вы запускаете код, работает только main.
Если вы хотите запускать другие функции, вам нужно вызывать их ВНУТРИ вашей основной функции.

public static ArrayList<String> readDataFromFile(String fileName) throws FileNotFoundException 
{
    Scanner s = new Scanner(new File(fileName));
    ArrayList<String> list = new ArrayList<String>();
    while (s.hasNext()){
        list.add(s.next());
    }
    s.close();
    return list;
}
public static void main(String[] args) throws FileNotFoundException 
{       
    ArrayList<String> list = readDataFromFile("(enter you file path)"); //calling the function with a given path (enter the path between "")
    System.out.println(list.size()); //printing the size of the list
}
0 голосов
/ 21 апреля 2020

Вы не вызвали метод readDataFromFile (...). Вы только создали пустой ArrayList с именем temp, а затем попытались напечатать его размер, который равен нулю. Между вашими двумя строками в main () вам нужно вызвать метод, который вы написали (окруженный try / catch).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...