Коллекции

Задачи на использование Java Collection Framework.

Задача 1

Дан код:

final List<Integer> l1 = new ArrayList<>();

final List<Integer> l2 = new ArrayList<>();


l1.add(1); l1.add(2); l1.add(3); l1.add(4); l1.add(5);

/*SOLUTION*/


System.out.println("l1: " + l1);

System.out.println("l2: " + l2);

На место /*SOLUTION*/ поместите код, который переложит данные из одного массива в другой. Вывод программы должен получиться следующим:

l1: []

l2: [1, 2, 3, 4, 5]

Если бы на списки не ссылались финальные переменные, то можно было бы схитрить, создав второй список на основе первого и очистив затем первый. Но в данном случае так не получится (и хорошо, потому что это не будет решением задачи, так как задача не про ссылки, а про сами списки), поэтому элементы списка нужно просто перекладывать по одному. Например так:

final List<Integer> l1 = new ArrayList<>();

final List<Integer> l2 = new ArrayList<>();


l1.add(1); l1.add(2); l1.add(3); l1.add(4); l1.add(5);


while (!l1.isEmpty()) {

Integer i = l1.get(0);


l2.add(i);

l1.remove(i);

}


System.out.println("l1: " + l1);

System.out.println("l2: " + l2);

Есть, разумеется и другие способы. Но это простая задача.