PIbd-21_Eliseev_E.E._Airbus.../Project/src/SetPlanesGeneric.java

94 lines
2.4 KiB
Java
Raw Normal View History

2022-11-05 21:26:27 +04:00
public class SetPlanesGeneric<T extends Object>
{
//массив объектов, которые храним
private final Object[] _places;
//количество объектов в массиве
public int Count()
{
return _places.length;
}
//конструктор
public SetPlanesGeneric(int count)
{
_places = new Object[count];
}
//добавление объекта в набор
public int Insert(T plane)
{
return Insert(plane, 0);
}
//добавление объекта в набор на конкретную позицию
public int Insert(T plane, int position)
{
// проверка позиции
if (position >= _places.length || position < 0)
{
return -1;
}
//проверка, что элемент массива по этой позиции пустой, если нет, то
if (_places[position] == null)
{
_places[position] = plane;
return position;
}
//проверка, что после вставляемого элемента в массиве есть пустой элемент
int findEmptyPos = -1;
for (int i = position + 1; i < Count(); i++)
{
if (_places[i] == null)
{
findEmptyPos = i;
break;
}
}
if (findEmptyPos < 0)
{
return -1;
}
// вставка по позиции
_places[position] = plane;
return position;
}
//удаление объекта из набора с конкретной позиции
public T Remove(int position)
{
// проверка позиции
if (position >= _places.length || position < 0)
{
return null;
}
// удаление объекта из массива, присовив элементу массива значение null
T temp = (T)_places[position];
_places[position] = null;
return temp;
}
//получение объекта из набора по позиции
public T Get(int position)
{
if (position >= _places.length || position < 0)
{
return null;
}
else if (_places[position] == null)
{
return null;
}
return (T)_places[position];
}
}