java: de retour d'une collection

Quelle est la meilleure façon de renvoyer une collection en Java?

Dois-je permettre à l'appelant de fournir une collection à ajouter? Ou juste de retour d'un List<> ou Set<> des articles? Ou les deux?

public class Item { ... }

public class SomeOtherClass
{
  private List<Item> myItems;

  public List<Item> getItems()
  { 
     return Collections.unmodifiableList(this.myItems); 
  }
  public void collectItems(Collection<? super Item> target)
  {
     target.addAll(myItems);
  }
}

remarque: l'exemple ci-dessus suppose l'existence préalable d'une liste qui peut être immédiatement retournés. Je suis également intéressé par la réponse appropriée lorsqu'une telle liste n'est pas le cas auparavant et doit être généré lorsque l'appelant appels getItems() ou collectItems().
(J'ai renommé collectItems basée sur le point soulevé par Mykola.)

  • +1 pour la présentation des Collections.unmodifiableList. Juste ce que je cherchais.
InformationsquelleAutor Jason S | 2010-02-01