/*
 * @author Ranides Atterwim <ranides@gmail.com>
 * @copyright Ranides Atterwim
 * @license WTFPL
 * @url http://ranides.net/projects/assira
 */
package net.ranides.assira.collection;

import java.util.Collection;
import java.util.stream.IntStream;
import net.ranides.assira.collection.arrays.IntArrays;
import net.ranides.assira.collection.iterators.IntIterator;

/**
 *
 * @author Ranides Atterwim <ranides@gmail.com>
 */
public interface IntCollection extends Collection<Integer> {
    
    IntCollection EMPTY = IntArrays.asList();

    boolean add(int k);

    boolean addAll(IntCollection values);

    boolean contains(int k);

    boolean containsAll(IntCollection values);

    @Override
    IntIterator iterator();
    
    IntStream intstream();

    boolean rem(int k);

    boolean rem(Object value);

    boolean removeAll(IntCollection values);

    boolean retainAll(IntCollection values);

    int[] toArray(int[] a);

    int[] toIntArray();

    int[] toIntArray(int[] target);
    
}
