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