anchor.diff:  
   Again, this method is not optimized, since it will have to traverse the whole list instead of escaping as soon as a matching element is found.
   
  -Note that we must define an `equal` method in our `Item` class. I will not show it here, since you certainly know how to do this. Moreover, any good IDE will generate it for you. However, to be really complete, we should add a unique ID to the `Item` class. Forgetting to do so will make impossible to have two different items with the same weight and value in the list. A very simple way to do this, if the ID is not to be used for anything else, is to generate a UUID and use it for equality:
  +Note that we must define an `equals` method in our `Item` class. I will not show it here, since you certainly know how to do this. Moreover, any good IDE will generate it for you. However, to be really complete, we should add a unique ID to the `Item` class. Forgetting to do so will make impossible to have two different items with the same weight and value in the list. A very simple way to do this, if the ID is not to be used for anything else, is to generate a UUID and use it for equality:
   
   [source,java]
   ----
  
positive.code: = Folding the Universe, part II
  :published_at: 2016-06-21
  
  This is a series of articles complementing my book, https://www.manning.com/books/functional-programming-in-java[Functional Programming in Java]. Previous articles in this series may be found here:
  
negative.code: 
  == Solving the real problem
  
  Beside efficiency, we have a more important issue: our program does not solve our real problem, because it allows using several times the same item. It was done this way for simplification. Now, we can fix this easily:
  
  [source,java]
  ----
  