Najszybszy sposób na odtworzenie listy ArrayList w pętli for

W Javie, za pomocą poniższej funkcji dla ogromnej macierzy X, można wydrukować jej elementy oddzielające kolumny:

// create the list of distinct values
List<Integer> values = new ArrayList<Integer>();

// X is n * m int[][] matrix
for (int j = 0, x; j < m; j++) {
    values.clear();
    for (int i = 0; i < n; i++) {
        x = X[i][j];
        if (values.contains(x)) continue;
        System.out.println(x);
        values.add(x);
    }
}

Najpierw iteruję po kolumnach (indeks j) i po wierszach (indeks i).

Ta funkcja będzie nazywana milionami razy dla różnych macierzy, więc kod powinien zostać zoptymalizowany, aby spełnić wymagania dotyczące wydajności. Zastanawiam się nad tablicą wartości. Czy byłoby szybciej korzystaćvalues = new ArrayList<Integer>(); lubvalues = null zamiastvalues.clear() ?

questionAnswers(4)

yourAnswerToTheQuestion