public boolean retainAll(Collection<?> c) { Recipe[] recipesCopy = null; Recipe[] recipesTMP = null; for (Object o : c) { if (o instanceof Recipe) { if (contains(o)) { if (recipesCopy == null) { recipesCopy = new Recipe[1]; recipesCopy[0] = (Recipe) o; } else { recipesTMP = new Recipe[recipesCopy.length + 1]; System.arraycopy(recipesCopy, 0, recipesTMP, 0, recipesCopy.length); recipesTMP[recipesTMP.length - 1] = (Recipe) o; recipesCopy = recipesTMP; } } } } recipes = recipesCopy; return true; }
public boolean removeAll(Collection<?> c) { if (contains(c)) { for (Object o : c) { boolean removed = false; for (int i = 0; i < recipes.length && !removed; i++) { Recipe recipe = recipes[i]; if (recipe.equals(o)) { Recipe[] recipesCopy = new Recipe[recipes.length - 1]; System.arraycopy(recipes, 0, recipesCopy, 0, i); System.arraycopy(recipes, i + 1, recipesCopy, 0, recipesCopy.length - i); recipes = recipesCopy; removed = true; } } } return true; } else { return false; } }