ArrayAsSetRO.java
package eu.javaexperience.collection.set;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import eu.javaexperience.collection.iterator.ArrayIterator;
public class ArrayAsSetRO<T> implements Set<T>
{
final T[] arr;
public ArrayAsSetRO(T[] arr)
{
this.arr = arr;
}
@Override
public int size()
{
return arr.length;
}
@Override
public boolean isEmpty()
{
return arr.length == 0;
}
@Override
public boolean contains(Object paramObject)
{
for(int i=0;i<arr.length;i++)
if(paramObject.equals(arr[i]))
return true;
return false;
}
@Override
public Iterator<T> iterator()
{
return new ArrayIterator<>(arr);
}
@Override
public Object[] toArray()
{
return Arrays.copyOf(arr, arr.length);
}
@Override
public <B> B[] toArray(B[] paramArrayOfT)
{
B[] ret = Arrays.copyOf(paramArrayOfT, arr.length);
int ep = 0;
for(int i=0;i<arr.length;i++)
if(arr[i] != null)
ret[ep++] = (B) arr[i];
return ret;
}
@Override
public boolean add(T paramE)
{
return false;
}
@Override
public boolean remove(Object paramObject)
{
return false;
}
@Override
public boolean containsAll(Collection<?> paramCollection)
{
return false;
}
@Override
public boolean addAll(Collection<? extends T> paramCollection)
{
return false;
}
@Override
public boolean retainAll(Collection<?> paramCollection)
{
return false;
}
@Override
public boolean removeAll(Collection<?> paramCollection)
{
return false;
}
@Override
public void clear()
{
}
}