Рассмотрим Collection.contains (возможно, вместе с Arrays.asList , если вам так не повезло), HashMap или Set .
Это действительно зависит от того, что у вас есть, куда вы действительно идете, и какие глупые ограничения накладывает домашняя работа / учитель.Поскольку вы говорите «реализовать стек на основе массива», я предполагаю, что есть несколько глупых мандатов, и в этом случае я бы рассмотрел написание пользовательского arrayContains
вспомогательного * метода и / или использование вторичной структуры данных (Hash / Set) для сохранениядорожка «увиденного».
Если вы выполняете проверку при вставке, это просто (метакод, это ваша домашняя работа: -):
function addItem (i) begin
if not contains(stack, i) then
push(stack, i)
end if
end
* Вы можете использовать приведенный выше asList /содержит, если вы не возражаете против того, чтобы быть «не очень эффективным», но Java поставляется с очень небольшой хорошей поддержкой массивов и, следовательно, рекомендацией для помощника, который, в свою очередь, представляет собой просто цикл над массивом, возвращающий значение true, если значение найдено, falseиначе.(Или, возможно, верните найденный индекс или -1 ... ваш код: -)