anchor.diff:  
   We simply start with an empty list and add the elements to it, one after the other, starting from the right.
   
  -For our specific problem, we will need a `map` method applying a function to all elements of the list. This exactly like a copy, excepted that we apply the function before inserting each element in the new list:
  +For our specific Knapsack problem, we need a `map` method applying a function to all elements of the list. This exactly like a copy, excepted that we apply the function before adding each element to the new list:
   
   [source,java]
   ----
  
positive.code: 
    * compare the values of the two results, select the highest, and return it.
  
  Could'it be simpler! Here is the corresponding implementation:
  
  [source,java]
  ----
  
negative.code:   public String toString() {
      return String.format("item(%s, %s, %s)", name, weight, value);
    }
  }
  ----
  
  If you don't like public fields, feel free to make them private and write the corresponding getters. It is absolutely useless, however, just making the code longer. The `toString` method is for convenience, in order to print the result. In fact, there is absolutely no logic in this class.
  
  Then, we need a class to represent the knapsack:
  
  