Re: Arrays
You could also create your own set.
You may also extend it by using AbstactSet to make it iterable.
Cheers...
package deneme;
import java.util.*;
/**
* Items are not in any order
*/
public class MyArray <E> {
private static int FIRSTCAPACITYOFARRAY = 20;
private int counter=0;
private E[] localData;
private int currentSize;
/**
* Constructs it with capacity of 20 items
*
*/
public MyArray(){
localData = (E[]) new Object[FIRSTCAPACITYOFARRAY];
}
/**
* Other constructor to make a copy of a collection
* @param collection
*/
public MyArray(Collection <E> collection){
int size = collection.size();
size += size/10;
localData = (E[]) new Object[size];
for (E item : collection){
if (item!=null && !contains(item))
localData[counter++]=item;
}
}
/**
* returns true if the item is added successfully
*/
public boolean add(E item){
if(item == null){
throw new NullPointerException();}
else if( contains(item)){
return false;}
else{
ensureTheCapacity ();
localData[counter++] = item ;
return true ;
}
}
/**
* returns the size
*/
public int size () {
return localData.length +1 ;
}
/**
* Returns index of the given item if it is not in the array returns
-1
* @param item
* @return index
*/
private int findIndex(Object item){
if(item == null){
throw new NullPointerException();}
for (int i = 0 ; i< counter ; i++){
if (item == localData[i]){
return i;}
}
return -1;
}
/**
*
* @param index
* @return E
*/
public E get(int index) {
if(index<0||index>=counter)
throw new IndexOutOfBoundsException();
return localData[index];
}
/**
* returns true if the array is empty otherwise false
*/
public boolean isEmpty(){
return localData[0] == null;
}
/**
* Returns true if the item is in the array
*/
public boolean contains(Object item){
for (int i = 0 ; i< counter ; i++){
if (item == localData[i])
return true;
}
return false;
}
/**
* Removes the given item if it match
*/
public boolean remove (Object localItem) {
for (int i = 0 ; i< counter ; i++){
if (localItem == localData[i]){
localData[i] = localData[currentSize-1];
localData[currentSize-1] = null;
return true;}
}
return false;
}
/**
* Make sure that there is sufficient place in the array
*
*/
private void ensureTheCapacity () {
if(counter<localData.length){ return; }
E[] temporaryArray = (E[]) (new Object[localData.length
+FIRSTCAPACITYOFARRAY]);
for(int i =0 ; i<counter ; i++)
{
temporaryArray[i] = localData[i];
localData = temporaryArray;
}
}
}