Сортировка данных CSV в многомерный, так что данные могут быть изменены и сохранены - PullRequest
0 голосов
/ 18 мая 2018

Я попытаюсь сделать это настолько просто, насколько смогу, потому что я запутываюсь, просто думая об этом.

У меня есть data.csv, в котором 7 значений, разделенных запятыми, и 804 строки.

Например:

10,100,1000,1,10,100,1050 
10,130,1000,1,12,100,1040 etc

Моя задача - создать программу на Java с графическим интерфейсом, которая выполняет следующие задачи:

1.Считайте CSV, разбейте строки и сохранитев массив (думаю, я в порядке с этим битом)

После того, как данные были сохранены в массивах, необходимо манипулировать некоторыми данными.Например;

Найти среднее значение всех «столбцов» в CSV -Найдите минимальное / максимальное значения всех столбцов

Данные графикаграфик (это может быть проигнорировано на данный момент, ха-ха)

Так что я просто очень озадачен тем, как правильно хранить мои данные в многомерном массиве и ТАКЖЕ иметь возможность манипулироватьопределенные элементы массива.Мне также нужна помощь, потому что я просто не понимаю, стоит ли мне сосредоточиться на своем графическом интерфейсе, например, создать кнопку, которая будет загружать CSV, кнопку, которая будет рассчитывать средние значения и т. Д. И т. Д.

В данный момент у меня естьвсего один класс, который открывает файл (только через исходную папку).Читает это построчно, и (я думаю) сохраняет это в массиве.

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

Будет ли несколько классов для каждой из «функций» более понятными?Например, у меня есть класс для расчета среднего значения, класс для расчета минимального / максимального значения и т. Д., И если это правильный путь вперед, как лучше всего включить его в графический интерфейс пользователя.

Извините заМного вопросов и огромное спасибо всем, кто может помочь!

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


    /////////DECLARING ARRAYS/VARIABLES//////
    String line;
    double year[] = new double [5000];
    double month[] = new double [5000];
    double tmax[] = new double [5000];
    double tmin[] = new double [5000];
    double af[] = new double [5000];
    double rain[] = new double [5000];
    double sun[] = new double [5000];
    //////////////////////////////////////////

    ////////////READING THE FILE "SHEFFIELD DATA" *CHANGE TO JUST DATA FOR EASYNESS**//////////
    BufferedReader file = new BufferedReader(new FileReader("sheffielddata.csv"));
    //////////////////////////////////////////////////////////////////////////////////////////


    ///////////INDEXING THE ARRAY /////////////////
    int index=0;
    ///////////////////////////////////////////////


    ////////LOOP TO ENSURE THE FILE READS EACH LINE/////////////////
    while( (line = file.readLine()) != null){
    ///////////////////////////////////////////////////////////////

    //////////APPLY THE SPLIF METHOD///////////////////////////////
        String[] splits = line.split(","); //This will have total of 7 values 
    //////////////////////////////////////////////////////////////

    //////////////ARRAY AND STRINGS///////////////////////  
        String name = splits[0];
        int[] intArray = new int[7];

        double value0 = Double.parseDouble(splits[0]);
        double value1 = Double.parseDouble(splits[1]);
        double value2 = Double.parseDouble(splits[2]);
        double value3 = Double.parseDouble(splits[3]);
        double value4 = Double.parseDouble(splits[4]);
        double value5 = Double.parseDouble(splits[5]);
        double value6 = Double.parseDouble(splits[6]);

        year[index] = value0;
        month[index] = value1;
        tmax[index] = value2;
        tmin[index] = value3;
        af[index] = value4;
        rain[index] = value5;
        sun [index] = value6;

        ///////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////
    }//LOOP ENDS READING THE CSV FILE

1 Ответ

0 голосов
/ 18 мая 2018

Как я понимаю, и я открыт для того, чтобы ошибаться в этом, когда я думаю о создании нескольких классов, я создаю классы для каждого отдельного объекта, который я пытаюсь инкапсулировать.В вашем случае вы спрашиваете, следует ли вам создавать разные классы для каждого из ваших расчетов.В вашем случае, я думаю, вам будет хорошо, если все ваши вычисления будут выполнены в одном классе, но я бы отделил этот класс от того, где вы строите графический интерфейс.

Итак, если бы я и я пытались выполнить это задание аккуратно и красиво, у меня были бы следующие классы:

1) Класс InformationArray - в этом классеЯ бы создал методы, которые выполняли бы мои необходимые вычисления, и этот класс содержал бы любые переменные, которые мне нужны.2) Класс FileReader, который будет содержать методы для чтения в файле CSV.3) Класс GUI, в котором вы можете создать красивую панель для использования.4) Класс Driver, содержащий ваш основной метод / метод запуска.

Вот как я бы это настроил.Надеюсь, это помогло.

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