undefined

Примеры по ArrayList и Generics

Java Syntax
7 уровень , 8 лекция
Открыта
Примеры по ArrayList и Generics 1

— Давай-ка я начну с действительно полезных вещей. Сейчас ты увидишь несколько полезных примеров работы с ArrayList и Generics:

— Пример 1:

Ввод списка целых чисел с клавиатуры
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> list = new ArrayList<Integer>() ;

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;
        list.add(Integer.parseInt(s));
    }
}

— Пример 2:

То же, чётные числа добавляются в конец списка, нечётные — в начало.
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> list = new ArrayList<Integer>();

    while (true)
    {
        String s = reader.readLine();
        if (s.isEmpty()) break;

        int x = Integer.parseInt(s);
        if (x % 2 == 0)  //проверяем, что остаток от деления на два равен нулю
            list.add(x);          //добавление в конец
        else
            list.add(0, x);      //вставка в начало      
    }
}

— Пример 3:

Удаление всех чисел больше 5:
public static void main(String[] args) throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in) );
    ArrayList<Integer> list = new ArrayList<Integer>();

    list.add(1);
    list.add(7);
    list.add(11);
    list.add(3);
    list.add(15);

    for (int i = 0; i < list.size(); ) //убрали увеличение i внутрь цикла 
    { 
        if (list.get(i) > 5)
            list.remove(i);  //не увеличиваем i, если удалили текущий  элемент  
        else
            i++;
    }
}

— Пример 4:

Разделение массива на два — чётных и нечётных чисел
public static void main(String[] args) throws IOException
{
    //статическая инициализация массива
    int[] data = {1, 5, 6, 11, 3, 15, 7, 8};  

    //создание списка, где все элементы должны быть типа Integer 
    ArrayList<Integer> list = new ArrayList<Integer> ();   

    //заполнение списка из массива
    for (int i = 0; i < data.length; i++) list.add(data[i]);  

    ArrayList<Integer> even = new ArrayList<Integer>();  //чётные
    ArrayList<Integer> odd = new ArrayList<Integer>();    //нечётные

    for (int i = 0; i < list.size(); i++)
    {
        Integer x = list.get(i);
        if (x % 2 == 0)    //если x - чётное
            even.add(x);   // добавляем x в коллекцию четных чисел  
        else
            odd.add(x);    // добавляем x в коллекцию нечетных чисел
    }
}
undefined
2
Задача
Java Syntax,  7 уровень,  8 лекция
Недоступна
Набираем код Ӏ Java Syntax: 7 уровень, 8 лекция
Java Syntax: 7 уровень, 8 лекция. Внимание! Объявляется набор кода на JavaRush. Для этого включите режим повышенной внимательности, расслабьте пальцы, читайте код и… набирайте его в соответствующем окошке. Набор кода — вовсе не бесполезное занятие, как может показаться на первый взгляд: благодаря ему новичок привыкает к синтаксису и запоминает его (современные IDE редко дают ему это сделать).

— Пример 5:

Слияние списков.
public static void main(String[] args) throws IOException
{
    ArrayList<Integer> list1 = new ArrayList<Integer>();   //создание списка  
    Collections.addAll(list1, 1, 5, 6, 11, 3, 15, 7, 8);   //заполнение списка

    ArrayList<Integer> list2 = new ArrayList<Integer>();
    Collections.addAll(list2, 1, 8, 6, 21, 53, 5, 67, 18);

    ArrayList<Integer> result = new ArrayList<Integer>();

    result.addAll(list1);   //добавление всех значений из одного списка в другой
    result.addAll(list2);

    for (Integer x : result)   //быстрый for по всем элементам, только для коллекций
    {
        System.out.println(x);
    }
}

— Круто. И что Диего даст мне сейчас кучу аналогичных задач, да?

— Ага!

Комментарии (420)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Дима 8 уровень, Комсомольск-на-Амуре
11 мая 2021
Почему в примере, где удаляем числа больше 5, i++ убрали из цикла? Нам ведь нужно перебрать весь список, как я понял, а мы в итоге удалили первое число попавшееся больше пяти и всё, i не идёт дальше
Dmitry 12 уровень, Киев
16 марта 2021
понимаю что не по теме, но все же: встречаю выражение типа

for (Integer x : result)
что в нем происходит? как оно читается?
enot 18 уровень
16 февраля 2021
Чем Arrays отличается от Collections ? На практике?
Igor 27 уровень, Минск
13 февраля 2021
Такое объявление дженерика было актуально до 7й версии джавы.

ArrayList<Integer> list = new ArrayList<Integer> ();
Начиная с 7-ой версии можно объявлять только слева.

ArrayList<Integer> list = new ArrayList<> ();
Anonymous #2513968 16 уровень
5 февраля 2021
а зачем в Примере 3 BufferedReader??
Карбофос Огарин 14 уровень, Санкт-Петербург
21 января 2021
Боюсь нажимать кнопку "Открыть следующую лекцию" Там задачи)
Валерий Пантелеев 12 уровень, Тюмень
19 января 2021
Пример вывода i++ за пределы условий цикла пришелся очень кстати, использовал в решении задачи про "Р" и "Л". (В Паскале такого не было! )))
Юрий Бойко 9 уровень
12 января 2021
Пример 4, строка 10 - это точно рабочий код?
UVM 8 уровень
10 декабря 2020
В Java есть класс java.util.Collections, у которого очень много методов, полезных при работе с коллекциями -метод addAll(colls, e1, e2, e3, ..) Добавляет в коллекцию colls элементы e1, e2, e3,...
Shin 9 уровень, Омск
5 декабря 2020
Обьясните пожалуйста на пальцах, как расшифровать этот момент в 5 примере: for (Integer x : result) { System.out.println(x); }