Я работаю над проектом, который создает массив объектов (аппаратных средств) из класса I, который называется ToolItem
. Он смотрит на такие:Удаление и перемещение объектов в массиве
private ToolItem[] toolArray = new ToolItem[10];
for (int i = 0; i < toolArray.length; i++)
{
toolArray[i] = new ToolItem();
System.out.println(toolArray[i]);
}
Текущий класс я работаю, называется ToolWarehouse
, предназначен для обработки данных с использованием методов, таких как вставка, поиск, удаление ЭСТ. При создании метода удаления нам будет предложено выполнить поиск уникального идентификатора, и если он совпадает, установите для всех членов данных значение 0. После этого нам будет предложено удалить член массива и сдвинуть все влево. Инструкции о том, как сдвинуть массив никогда не учил/упоминалось, так что я сделал некоторое рытье и придумал это:
public void delete(int ID)
{
testArray = searchArray(ID); //method used to search array for specified ID
for (index = 0; index < toolArray.length; index++)
{
if (testArray == index)
{
toolArray[index].setQuality(0);
toolArray[index].setToolName("");
toolArray[index].setID(0);
toolArray[index].setNumberInStock(0);
toolArray[index].setPrice(0.0);
System.arraycopy(toolArray, 1, toolArray, 0, toolArray.length - 1);
numberOfItems--;
}
}
}//end delete
Вот searchArray:
public int searchArray(int id)
{
for (index = 0; index < toolArray.length; index++)
{
if (toolArray[index].getToolID() == id)
{
System.out.println("ID found at location " + index);
return index;
}
}
return -1;
}//end searchArray
Где индекс место в массив, который в настоящее время оценивается. Теперь, есть:
System.arraycopy(toolArray, 1, toolArray, 0, toolArray.length - 1);
подходит для моих целей? Я читал довольно много разных способов перемещения элементов в массиве, и это, кажется, самый простой способ сделать это, но большинство из них использовали его с массивом, который я не могу использовать прямо сейчас. Любая обратная связь очень ценится. Благодаря!
Просьба указать типы 'index',' testArray' и 'toolArray' как минимум. Мы можем выводить типы, но ваш вопрос не содержит проверяемого примера. См. Http://stackoverflow.com/help/mcve. – Krumia