Calculando a média de uma lista de matriz?

Estou tentando usar o código abaixo para calcular a média de um conjunto de valores que um usuário digita e exibi-lo em umjTextArea mas não funciona corretamente. Digamos, um usuário digita 7, 4 e 5, o programa exibe 1 como a média quando deveria exibir 5.3

  ArrayList <Integer> marks = new ArrayList();
  Collections.addAll(marks, (Integer.parseInt(markInput.getText())));

  private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {
      analyzeTextArea.setText("Class average:" + calculateAverage(marks));
  }

  private int calculateAverage(List <Integer> marks) {
      int sum = 0;
      for (int i=0; i< marks.size(); i++) {
            sum += i;
      }
      return sum / marks.size();
  }

O que há de errado com o código?

questionAnswers(11)

yourAnswerToTheQuestion