Как добавить результаты метода в таблицу?

Пишу программку для сравнения типов коллекций. Не могу разобраться с вопросом как время выполнения метода добавить в ячейку таблицы. Суть таблицы следующая: В каждую из типов коллекций применяется вставка элементов (на 100/1000/10 000 элементов), удаление, доступ к элементу и другое. По нажатию кнопки должен происходить расчет и время выполнения заноситься в определенную ячейку таблицы. Как это сделать?

import net.miginfocom.swing.MigLayout;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import static javax.swing.WindowConstants.EXIT_ON_CLOSE;


public class ComparingTypeOfCollections  implements TableModelListener, ActionListener
{
    public ComparingTypeOfCollections() {
        JFrame jFrame = new JFrame("Comparing types of collections");
        MigLayout migLayout = new MigLayout();
        //закрытие окна
        jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);

        // добавление колонок  в таблицу
         String[] columnNames = new String[]{"Type","Units","Add","Remove","Populate","Contains","Get"};

        // Заголовки рядов
        Object[][] rowNames = new Object[][]{
                                            {"ArrayList", "sec", 0d,0d,0d,0d,0d},
                                            {"LinkedList","sec",0d,0d,0d,0d,0d},
                                            {"HashSet","sec", 0d,0d,0d,0d,0d},
                                            {"TreeSet","sec",0d,0d,0d,0d,0d}
                                            };

        //создание самой таблицы и добавление в нее рядов и столбцов
        JTable table = new JTable(rowNames,columnNames);

        table.setFillsViewportHeight(true);
        //добавление компоновщика для размещения элементов
        Box contents = new Box(BoxLayout.Y_AXIS);

        //добавление полосы прокрутки к таблице
        contents.add(new JScrollPane(table));

        //добавление обработчика событий к таблице
        table.getModel().addTableModelListener(this);

        //установление высоты строк
        table.setRowHeight(0,25);
        table.setRowHeight(1,25);
        table.setRowHeight(2,25);
        table.setRowHeight(3,25);

        //добавление контента к окну
        jFrame.setContentPane(contents);

        //установление размера окна
        jFrame.setSize(550, 300);

        //установление масштабирования, видимости и размещения
        jFrame.setResizable(false);
        jFrame.setVisible(true);
        jFrame.setLocationRelativeTo(null);


        //добавление кнопок для рассчета эффективности элементов
        JButton button_100 = new JButton("Calculate for 100 elements");
        JButton button_1000 = new JButton("Calculate for 1 000 elements");
        JButton button_10000 = new JButton("Calculate for 100k elements");

        //создание панели для кнопок  и добавление кнопок в неё
        JPanel buttonPanel = new JPanel(migLayout);
        buttonPanel.add(button_100);
        buttonPanel.add(button_1000, "wrap");
        buttonPanel.add(button_10000, "wrap");

        //создание главное панели в которой все будет размещаться. Добавление к ней таблицы и панели с кнопками
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout( new FlowLayout(FlowLayout.CENTER));
        mainPanel.add(table);
        mainPanel.add(buttonPanel);
        mainPanel.setVisible(true);


        JProgressBar progressBar = new JProgressBar();
        //добавление панелей к окну
        jFrame.add(mainPanel, "wrap");
        jFrame.add(progressBar);
        jFrame.add(buttonPanel);


        button_100.addActionListener(myListener);


    }

MyListener myListener =  new MyListener();
    private long toCollect100Elements(){
        ArrayList<Double> list = new ArrayList<>();
        long startTime = System.nanoTime();
        for (double k = 0; k<100; k++){
            double n = k+Math.random();
            list.add(n);
        }
        long endTime = System.nanoTime();
        //кусок кода для подсчета времени выполениня программы

       return (endTime - startTime);

    }

    public static void main(String[] args) {
        new ComparingTypeOfCollections();


    }


    @Override
    public void tableChanged(TableModelEvent e) {
        int row = e.getFirstRow();
        int column = e.getColumn();
        TableModel model = (TableModel)e.getSource();
        String columnNameEvent = model.getColumnName(column);
        Object dataEvent = model.getValueAt(row,column);

    }


    @Override
    public void actionPerformed(ActionEvent e) {

    }

    class MyListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            toCollect100Elements();
            System.out.println(toCollect100Elements());
        }
    }
}

Ответы (2 шт):

Автор решения: azlov
long start = System.currentTimeMillis(); // начинаем отсчет до выполнения метода
// вызов метода
long end = System.currentTimeMillis(); // после выполнения

long workTime = end - start; // получаем время работы в миллисекундах

При желаний, посредством математических операций, переводим в секунды, минуты, часы и тд

→ Ссылка
Автор решения: Delembech

Решением будет следующие строки кода:

@Override
        public void actionPerformed(ActionEvent e) {
            long executionTime = toCollect100Elements();
            int rowIndex = 1;
            int columnIndex = 2;
            table.getModel().setValueAt(executionTime, rowIndex, columnIndex);
        }
→ Ссылка