а если унаследоваться от ArrayList был бы идентичный результат? Зачем все это?