Sto leggendo il libro Algorithms di Robert Sedgewick e vedo spesso il termine client API. Si prega di dare un'occhiata a questo esercizio:
Write an iterable Stack client that has a static method copy() that takes a stack of strings as argument and returns a copy of the stack. Note : This ability is a prime example of the value of having an iterator, because it allows development of such functionality without changing the basic API.
Sono confuso sul fatto che voglia che implementi l'API dello stack creando una classe concreta che implementa Stack o che vuole che scriva un programma che utilizza la funzionalità API Stack. Quindi vuole questo
class StackImpl implements Stack<Item>{
}
o questo?
public static void main(String[] args){
Stack<String> stack = new Stack<String>();
stack.push("to");
stack.push("be");
stack.push("or");
stack.push("not");
System.out.println(copy(stack));
}
public static Stack<String> copy(Stack<String> stack){
//copy from stack to a new stack and return
}