Загрузка...

Методы List в Java

Держите ArrayList<String> с именем tags, добавьте oak, затем pine, и прочитайте первое значение через tags.get(0). Скомпилируйте Rack.java и запустите java Rack. Экран должен показать одну строку: oak. Вызов get(0) выбирает слот ноль. Позже на этой странице демо показывают size() с печатью 2 и remove(0) с остатком [pine]. Прочитать один слот, посчитать и убрать слот — вот чему учит эта страница.

Прочитать один слот через get

На странице ArrayList вы печатали весь список и видели [oak, pine]. Полная печать по-прежнему работает. Эта страница доходит до одного значения за раз. Вызов tags.get(0) возвращает слово в слоте ноль. Номера слотов начинаются с нуля — та же идея, что plants[0] на странице массивов, но вызов использует скобки: get(0), а не только квадратные скобки после имени.
Откройте Rack.java. Оставьте имя публичного класса Rack, чтобы оно совпадало с именем файла. Удалите оставшийся System.out.println(tags); как единственную учебную строку, если скопировали Shelf буквально — первый сохранённый файл этой страницы печатает tags.get(0) вместо этого. Также удалите любой Scanner, nextLine, Bell.ring() или демо package. Программа не должна ждать ввода.
Близко к верху, над public class Rack, оставьте:
import java.util.ArrayList;
Внутри main создайте список и добавьте те же два слова:
ArrayList<String> tags = new ArrayList<String>();
tags.add("oak");
tags.add("pine");
Затем напишите:
System.out.println(tags.get(0));
Передайте 0 в скобках. Не пишите tags[0]. Не печатайте весь список как обязательный путь первого демо. Сохраните перед компиляцией.

Rack get first slot

java
import java.util.ArrayList;

public class Rack {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        System.out.println(tags.get(0));
    }
}

Из папки с Rack.java выполните javac Rack.java. Когда скобки, фигурные скобки, угловые скобки и точки с запятой совпадают, javac сам ничего не пишет. Затем выполните java Rack — не java Rack.java и не java ArrayList. Уберите окончание .java из команды запуска.
Программа должна напечатать одну строку и остановиться: oak. Она не просит вас печатать. Если терминал ждёт клавиатуру, в каком-то файле ещё остался вызов nextLine из старого упражнения. Удалите его и оставьте создание, две строки add и System.out.println(tags.get(0));.
Пройдите запуск один раз. Java начинается с Rack.main. Список растёт двумя add. get(0) возвращает oak. Строка печати пишет это слово. Экран показывает oak. Больше ничего печататься не должно. Если видите [oak, pine], вы всё ещё печатаете весь список. Смените строку печати на tags.get(0). Если видите ding или 9, всё ещё работает старый Porch или Pier — используйте java Rack.
Если по ошибке оставите печать get(1), экран покажет pine. Это корректный Java, но не файл, который эта страница хранит для первого демо. Оставьте get(0), чтобы экран был oak. Если вызвать get(2) после только двух add, программа выбросит ошибку во время выполнения, потому что слот два никогда не заполнялся. Оставайтесь здесь с get(0).

Посчитать через size

Второе демо спрашивает, сколько значений в списке. После тех же двух add вызовите tags.size() и напечатайте это число.

Rack size after two adds

java
import java.util.ArrayList;

public class Rack {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        System.out.println(tags.size());
    }
}

Компилируйте и запускайте так же: javac Rack.java, затем java Rack. Экран показывает 2. Метод size() возвращает целое число. Сами слова он не печатает. Если экран показывает [oak, pine], вы напечатали список вместо size(). Если показывает oak, всё ещё есть печать get(0) из первого демо. Для второго файла оставьте после двух add только System.out.println(tags.size());.
Не изобретайте tags.length у ArrayList на этой странице. Фиксированные массивы используют .length. Списки — .size(). Смешивать эти имена — частый остаток со страницы массивов. Оставьте size() для списка.

Убрать слот через remove

Третье демо удаляет слот ноль, затем печатает оставшийся список.

Rack remove then print

java
import java.util.ArrayList;

public class Rack {
    public static void main(String[] args) {
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("oak");
        tags.add("pine");
        tags.remove(0);
        System.out.println(tags);
    }
}

Скомпилируйте и запустите снова. После remove(0) oak исчез. pine сдвигается в слот ноль. Печать списка показывает [pine]. Экран уже не [oak, pine]. Если после remove напечатать tags.get(0) вместо всего списка, увидите одно pine — это нормально как проверка, но третий сохранённый файл печатает список, чтобы были видны скобки с одним оставшимся словом.
Вызывайте remove с номером существующего слота. После двух add и remove(0), и remove(1) законны до любого удаления. Эта страница держит remove(0), чтобы сначала ушёл oak. Не вызывайте remove(2) на списке из двух слов — такого слота никогда не было.

Сравнение с созданием ArrayList и add

На странице ArrayList учебный файл останавливался на println(tags) и экране [oak, pine]. Эта страница сохраняет ту же привычку создания и add, затем добавляет get, size и remove. Оставшийся файл Shelf, который печатает только весь список, — история, не путь квиза здесь. Для этой страницы запускайте java Rack с тем демо, которое изучаете: сначала get(0), затем size(), затем remove плюс печать.
Новый import для этих вызовов не нужен. Они принадлежат ArrayList, когда тип уже импортирован. Держите import java.util.ArrayList; вверху каждого файла Rack на этой странице.
Когда позже сопоставите ключи со значениями, следующая страница — HashMap — начнёт эту историю. Оставайтесь здесь с вызовами list. Не изобретайте put и синтаксис map как требование на этой странице.

Что остаётся для HashMap

Эта страница завершает базовый набор list: прочитать слот, посчитать значения, убрать слот. Следующая страница открывает другую коллекцию, где у каждой записи есть ключ и значение. Оставайтесь с get, size и remove на ArrayList здесь. Не пишите строки HashMap в демо Rack.
Если рядом ещё лежат старые Shelf.java, оставьте их или удалите только если путают, какой класс запускать. Запускайте java Rack после компиляции файла нужного демо.

Перед HashMap

Вы можете держать ArrayList<String> tags, добавить oak и pine, напечатать tags.get(0) и увидеть oak, напечатать tags.size() и увидеть 2, а после tags.remove(0) напечатать список и увидеть [pine]. Компилируйте Rack.java и запускайте java Rack для каждого сохранённого демо. Методы list сделали своё дело. Следующая страница — HashMap, где ключ указывает на значение в одном объекте.
Оставьте import. Оставьте два add перед get, size или remove. Оставьте слот ноль учебным индексом этой страницы. Эти привычки — контрольная точка перед движением дальше. Когда get(0) показывает oak, а size() показывает 2, вы готовы к следующей теме.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
6
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху