Работа с элементами списка 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); } }
Интересные материалы: