Comments 9
import java.util.ArrayList;
import java.util.List;
public class GradeCounter {
private static List<Integer> grades = new ArrayList<>();
public static void addGrade(int grade) {
if (grade >= 0 && grade <= 10) {
grades.add(grade);
}
}
public static void printGrades() {
grades.forEach(System.out::print);
}
}
пример использования должен быть красивым иначе нафига это все нужно
Это придуманный пример для наглядности. Конечно, можно придумать что-то более близкое к практическому применению, но в целях того, чтобы показать пример использования, этот пример мне показался достаточно хорошим. Тут ведь главный смысл в том, что коллекции не имеют константного размера, как это в массивах, и в придуманном примере наглядно показано преимущество коллекций в их способности динамически расширяться.
Лучше б про Sequenced Collections было
Почему я присваиваю полю List grades реализацию LinkedList
Потому что "Теоретически теория и практика - одно и то же, а практически - совершенно разные." На самом деле использование LinkedList оправдано чуть менее, чем никогда. Даже сам Блох, автор связного списка, сознавался, что ни разу его не использовал на практике.
Stack
Всё, что нужно знать об этом классе, сказано в документации к нему.
Hidden text
A more complete and consistent set of LIFO stack operations is provided by the Deque interface and its implementations, which should be used in preference to this class.
С современными процессорами и их размерами кэша Linked List нафиг не нужен
Введение в коллекции Java