Работа со списками на Java, с использованием ArrayList

Работа с элементами списка ArrayList.ArrayList — cписок по сравнению с массивом удобнее в работе, тем что можно вставлять и удалять элементы из любого места в массиве (пустые элементы не остаются), а также динамически может менять размер массива.

Создание списка строк:

ArrayList<String> list = new ArrayList<String>();

Добавление элементов в список:

list.add(i, s);
list.add(s); //добавление элемента в конец списка
list.add(0,s); //добавление элемента в начало списка
list.set(i,s);

Добавление чисел в список:

ArrayList<Integer> list1 = new ArrayList<Integer>();<
Collections.addAll(list1, 1, 5, 6, 11, 3, 15, 7, 8);

Объединение двух списков в третий:

result.addAll(list1);
result.addAll(list2);

Количество элементов в списке:

list.size();
в массиве: list.length;

Взятие элемента из списка:

list.get(5);
в массиве: list[3];

Удалить элемент списка:

list.remove(0); // удаляем первый элемент
list.remove(list.size()-1); // удаляем последний элемент

Быстрый вывод списка:

for (Integer x : result)
{
System.out.println(x);
}
for (String s : list)
{
    System.out.println(s);
}

Generics  (дженерики) — это типы с параметрами. В Java классы-контейнеры позволяют указывать тип их внутренних объектов. Когда мы объявляем generic-переменную, то мы указываем не один тип, а два: тип переменной и тип данных, которая она у себя хранит.

ArrayList list = new ArrayList(); В таком списке можно хранить переменные ЛЮБОГО типа.

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        Reader r = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(r);

         //создаем список строк
        ArrayList<String> list = new ArrayList<String>();

        // добавляем в список элементы с клавиатуры, с конца
        for (int i=0; i<5; i++)
        {
            String s = reader.readLine();
            list.add(0, s);
        }

        // Используя цикл выводим содержимое на экран

        for (int i=0; i < list.size(); i++)
        {
            System.out.println(list.get(i));
        }

    }
}

Ввод списка целых чисел с клавиатуры

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));
  }
}

Четные и нечетные, выборка из массива

public static void main(String[] args) throws IOException
{
 int[] data = {1, 5, 6, 11, 3, 15, 7, 8};
 
 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)
 even.add(x);
 else 
 odd.add(x);
 }
}

Интересные материалы: