сколько предметов я могу добавить?
Вы можете добавлять элементы в список, пока у виртуальной машины Java не закончится память. Нет искусственного ограничения.
Могу ли я сделать что-то подобное?
col.add(new Employee(5, "Frank", 28, "asas", "asas"))
Нет, потому что Employee
не имеет конструктора, который принимает эти аргументы. Но вы можете
col.add(new Employee(5, "Frank", 28));
Это дает вам два очень похожих, но не идентичных экземпляра в списке (они не идентичны, потому что они находятся в разных местах в памяти; они похожи, потому что все поля имеют одинаковое значение).
Почему printList стал статичным?
То есть его можно вызывать из статического метода main()
без создания экземпляра TestEmployeeSort
что это означает и о?
Алгоритм сортировки выберет два элемента в списке и вызовет compareTo()
для одного с другим в качестве аргумента. Первый будет this
, второй будет o
.
Таким образом, алгоритму сортировки не нужно много знать об объектах, которые он сравнивает.
Преимущество состоит в том, что вы можете легко сделать объекты сопоставимыми. Недостатком является то, что список не должен содержать null
указателей или не Employee
экземпляров.
Если это не работает для вас, вы можете создать Comparator
, который также имеет метод compareTo
, но он принимает два аргумента.