Пакеты не предполагаются, потому что философия Java заключается в том, что лучше быть явным, чем неявным / предполагаемым.
Это дает вам возможность получить доступ ко всему в вашем текущем пакете, но все, что находится за пределами, должно быть явно импортировано. (Я считаю, что Java.lang является исключением, поскольку он содержит так много базовых функций, как String, что не было бы ни одного пакета, который бы его не использовал).
Вот почему вы склонны видеть:
import java.util.ArrayList;
import java.util.LinkedList;
вместо:
import java.util.*;
Это может показаться раздражающим, пока однажды вы не попытаетесь выяснить, что кто-то использует код, и вам не покажется, насколько сложнее это будет, если что-то будет скрыто / подразумевается.
Если вы используете Eclipse, Netbeans или IntelliJ, вы никогда не заметите этого из-за двух функций.
Прежде всего, если вы нажмете Ctrl-пробел в середине ввода имени класса, он не только завершит имя класса для вас, но также автоматически добавит его в список импорта.
Во-вторых, если вы когда-нибудь попадете туда, где импорт "Неверный", или вы не используете расширение ctrl-space, вы можете просто набрать ctrl-shift-o (eclipse), чтобы он "Fix import". Это автоматически импортирует вещи, которые нужно импортировать, и удаляет импорт, который вам больше не нужен. В зависимости от ваших настроек он также будет расширяться или сворачиваться *.
Как только вы отключите систему, вы даже не подумаете об импорте.