65 lines
1.4 KiB
Java
65 lines
1.4 KiB
Java
public class SetTracktorGeneric<T> {
|
|
private final Object[] _places;
|
|
|
|
public int getCount() {
|
|
return _places.length;
|
|
}
|
|
|
|
public SetTracktorGeneric(int count) {
|
|
_places = new Object[count];
|
|
}
|
|
|
|
public int insert(T tracktor) {
|
|
return insert(tracktor, 0);
|
|
}
|
|
|
|
public int insert(T tracktor, int position) {
|
|
if (position < 0 || position >= getCount()) {
|
|
return -1;
|
|
}
|
|
|
|
if (_places[position] == null) {
|
|
_places[position] = tracktor;
|
|
return position;
|
|
}
|
|
|
|
int tmp = -1;
|
|
|
|
for(int i = position; i < getCount(); i++)
|
|
{
|
|
if (_places[i] == null)
|
|
{
|
|
tmp = i;
|
|
break;
|
|
}
|
|
}
|
|
if (tmp != -1)
|
|
{
|
|
System.arraycopy(_places, position, _places, position + 1, tmp - position);
|
|
_places[position] = tracktor;
|
|
return position;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public T remove(int position) {
|
|
if (position < getCount() && position >= 0)
|
|
{
|
|
T temp = (T) _places[position];
|
|
_places[position] = null;
|
|
return temp;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public T get(int position) {
|
|
if (position < 0 || position >= getCount()) {
|
|
return null;
|
|
}
|
|
|
|
return (T) _places[position];
|
|
}
|
|
}
|