I have a class with data member:
private static final int DEFAULT_SIZE = 10;
private Stack<String> myStack = new Stack<>();
// want to add more element to the stack based on demand - but add incremental demand
public void addCapacity(int incremental) {
int diff = incremental - DEFAULT_SIZE;
myStack.forEach((diff) -> {
myStack.push("something");
});
}
The idea was to see if this forms a use case for lambda functions. But it will not allow me as it is expecting a boolean in place of diff. Is lambda forEach a use-case here?
Advertisement
Answer
Since Stack extends Vector, if you wanted to increase the capacity, then you could have used ensureCapacity (in Vector)
myStack.ensureCapacity(minCapacity);
If you wanted to do myStack.push("something") diff times, then you could have used:
IntStream.range(0, diff).forEach(i -> myStack.push("something"));