package com.javarush.test.level17.lesson10.home01; import java.util.*; /* Общий список 1. Изменить класс Solution так, чтобы он стал списком. (Необходимо реализовать интерфейс java.util.List). 2. Список Solution должен работать только с целыми числами Long. 3. Воспользуйтесь полем original. 4. Список будет использоваться нитями, поэтому позаботьтесь, чтобы все методы были синхронизированы. */ public class Solution implements List<Long> { private ArrayList<Long> original = new ArrayList<Long>(); @Override public synchronized int size() { return original.size(); } @Override public synchronized boolean isEmpty() { return original.isEmpty(); } @Override public synchronized boolean contains(Object o) { return original.contains(o); } @Override public synchronized Iterator<Long> iterator() { return original.iterator(); } @Override public synchronized Object[] toArray() { return original.toArray(); } @Override public synchronized <T> T[] toArray(T[] a) { return original.toArray(a); } @Override public synchronized boolean add(Long aLong) { return original.add(aLong); } @Override public synchronized boolean remove(Object o) { return original.remove(o); } @Override public synchronized boolean containsAll(Collection<?> c) { return original.containsAll(c); } @Override public synchronized boolean addAll(Collection<? extends Long> c) { return original.addAll(c); } @Override public synchronized boolean addAll(int index, Collection<? extends Long> c) { return original.addAll(index, c); } @Override public synchronized boolean removeAll(Collection<?> c) { return original.removeAll(c); } @Override public synchronized boolean retainAll(Collection<?> c) { return original.retainAll(c); } @Override public synchronized void clear() { original.clear(); } @Override public synchronized Long get(int index) { return original.get(index); } @Override public synchronized Long set(int index, Long element) { return original.set(index, element); } @Override public synchronized void add(int index, Long element) { original.add(index, element); } @Override public synchronized Long remove(int index) { return original.remove(index); } @Override public synchronized int indexOf(Object o) { return original.indexOf(o); } @Override public synchronized int lastIndexOf(Object o) { return original.lastIndexOf(o); } @Override public synchronized ListIterator<Long> listIterator() { return original.listIterator(); } @Override public synchronized ListIterator<Long> listIterator(int index) { return original.listIterator(index); } @Override public synchronized List<Long> subList(int fromIndex, int toIndex) { return original.subList(fromIndex, toIndex); } }
Leave A Comment