package ru.job4j.generic;

/**
 * Class коллекции объектов.
 * @author karetskiy
 * @since 10.03.2018
 * @version 1
 */
public class SimpleArray<T> {

    /**
     * Массив для хранения объектов коллекции.
     */
    private Object[] objects;
    /**
     * Указывает индекс самого поледнего элемента в массиве.
     */
    private int lastIndex = -1;

    /**
     * Возвращает последний индекс коллекции.
     * @return последний индекс коллекции.
     *
     */
    public int getLastIndex() {
        return lastIndex;
    }

    /**
     * Добавление элемента в коллекцию.
     * @param model - добавляемый объект в коллекцию.
     */
    public void add(T model) {

        if (this.objects == null || lastIndex == this.objects.length - 1) {

            Object[] newObj = new Object[(lastIndex + 2) * 2];
            if (objects != null) {
                IteratotorArray<T> it = new IteratotorArray(this);
                int ind = 0;
                while (it.hasNext()) {
                    newObj[ind++] = it.next();
                }
            }
            this.objects = newObj;
        }
        lastIndex++;
        this.objects[lastIndex] = model;
    }

    /**
     * Удаление элемента из коллекции.
     * @param index - индекс удаляемого элемента в коллекции.
     */
    public void delete(int index) {

        if (index <= lastIndex) {
            for (int ind = index; ind < lastIndex; ind++) {
                this.objects[ind] = this.objects[ind + 1];
            }
            lastIndex--;
        }
    }

    /**
     * Устанавливает элемент в коллекцию по указанному индексу.
     * @param index - индекс вставляемого элемента в коллекции.
     * @param model - вставляемый объект.
     */
    public void set(int index, T model) {

        if (index <= lastIndex) {
            this.objects[index] = model;
        }
    }

    /**
     * Возвращает элемент по указангому индексу в коллекции.
     * @param index - индекс возвращаемого элемента в коллекции.
     * @return объект из коллекции.
     */
    public T get(int ind) {
        return (T) objects[ind];
    }

    /**
     * Строковое представление коллекции.
     * @return строковое представление.
     */
    @Override
    public String toString() {

        final String LS = System.lineSeparator();
        StringBuilder sb = new StringBuilder();

        for (int ind = 0; ind <= lastIndex; ind++) {
            sb.append(String.format("%s%s", objects[ind], LS));
        }
        return String.format("%s%s%s", "SimpleArray:", LS, sb.toString());
    }
}
@@ -20,16 +20,42 @@
 neric;%0A%0A
+import java.util.Arrays;%0A%0A
 /**%0A * C
@@ -114,13 +114,13 @@
 nce 
-1
 0
+4
 .0
-3
+4
 .201
@@ -133,17 +133,17 @@
 version 
-1
+2
 %0A */%0Apub
@@ -261,16 +261,32 @@
  objects
+ = new Object%5B0%5D
 ;%0A    /*
@@ -558,32 +558,212 @@
 stIndex;%0A    %7D%0A%0A
+    /**%0A     * %D0%A3%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82 %D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2 %D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2 %D0%B2 1.5 %D1%80%D0%B0%D0%B7%D0%B0.%0A     */%0A    private void ensureCapacity() %7B%0A%0A        this.objects = Arrays.copyOf(this.objects, (lastIndex + 2) * 2);%0A    %7D%0A%0A
     /**%0A     * %D0%94
@@ -904,32 +904,8 @@
 if (
-this.objects == null %7C%7C 
 last
@@ -936,25 +936,24 @@
 ngth - 1) %7B%0A
-%0A
             
@@ -956,341 +956,24 @@
     
-Object%5B%5D newObj = new Object%5B(lastIndex + 2) * 2%5D;%0A            if (objects != null) %7B%0A                IteratotorArray%3CT%3E it = new IteratotorArray(this);%0A                int ind = 0;%0A                while (it.hasNext()) %7B%0A                    newObj%5Bind++%5D = it.next();%0A                %7D%0A            %7D%0A            this.objects = newObj
+ensureCapacity()
 ;%0A  
@@ -1362,32 +1362,76 @@
 ;%0A            %7D%0A
+            this.objects%5BlastIndex%5D = null;%0A
             last

Исправил замечания: