package ua.yandex.shad.collections;

import java.util.Iterator;

public interface Array<T> extends Iterable<T> {

    int size();

    T[] toArray();

    T get(int index);

    void set(int index, T value);

    void ensureCapacity(int minCapacity);

    void add(T value);

    void add(T[] values);

    boolean isEmpty();

    Iterator<T> iterator();
}

@@ -1,330 +1,2618 @@
-package ua.yandex.shad.collections;%0A%0Aimport java.util.Iterator;%0A%0Apublic interface Array%3CT%3E extends Iterable%3CT%3E %7B%0A%0A    int size();%0A%0A    T%5B%5D toArray();%0A%0A    T get(int index);%0A%0A    void set(int index, T value);%0A%0A    void ensureCapacity(int minCapacity);%0A%0A    void add(T value);%0A%0A    void add(T%5B%5D values);%0A%0A    boolean isEmpty();%0A
+/*%0A * The MIT License (MIT)%0A *%0A * Copyright (c) 2015 Ruslan Sakevych%0A *%0A * Permission is hereby granted, free of charge, to any person obtaining a copy%0A * of this software and associated documentation files (the %22Software%22), to deal%0A * in the Software without restriction, including without limitation the rights%0A * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell%0A * copies of the Software, and to permit persons to whom the Software is%0A * furnished to do so, subject to the following conditions:%0A *%0A * The above copyright notice and this permission notice shall be included in all%0A * copies or substantial portions of the Software.%0A *%0A * THE SOFTWARE IS PROVIDED %22AS IS%22, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR%0A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,%0A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE%0A * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER%0A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,%0A * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE%0A * SOFTWARE.%0A */%0A%0Apackage ua.yandex.shad.collections;%0A%0Aimport java.util.Iterator;%0A%0Apublic interface Array%3CT%3E extends Iterable%3CT%3E %7B%0A%0A    /**%0A     * Get size of array.%0A     * @return actual size of array%0A     */%0A    int size();%0A%0A    /**%0A     * Convert array to Java array.%0A     * @return instance of Java array with elements%0A     */%0A    T%5B%5D toArray();%0A%0A    /**%0A     * Get element at %7B@code index%7D position.%0A     * @param index position of element in array%0A     */%0A    T get(int index);%0A%0A    /**%0A     * Set element at %7B@code index%7D position to %7B@code value%7D.%0A     * @param index position of element%0A     * @param value new value for element%0A     */%0A    void set(int index, T value);%0A%0A    /**%0A     * Resize internal array to fit %7B@code minCapacity%7D.%0A     * @param minCapacity minimal capacity to fit%0A     */%0A    void ensureCapacity(int minCapacity);%0A%0A    /**%0A     * Add new element to array.%0A     * %7B@value%7D element will be placed at the end of array.%0A     * @param value element to place%0A     */%0A    void add(T value);%0A%0A    /**%0A     * Add several elements to array.%0A     * All of them will be placed at the end of array.%0A     * Order of elements in array will be the same as in %7B@code values%7D array.%0A     * @param values elements to place%0A     */%0A    void add(T%5B%5D values);%0A%0A    /**%0A     * Check if array is empty.%0A     * @return true of false =%3E empty or not%0A     */%0A    boolean isEmpty();%0A%0A    /**%0A     * Get iterator, to move through array.%0A     * @return instance of iterator%0A     */
 %0A   

Document interface Array with JavaDoc.