import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Objects; public class ArticleRepository { private final List
articles; public ArticleRepository() { this.articles = new ArrayList<>(); } /** * 添加单个文章,防御 null */ public void add(Article article) { Objects.requireNonNull(article, "文章不能为null"); articles.add(article); } /** * 添加多个文章,防御 null 和空集合 */ public void addAll(Collection
articlesToAdd) { Objects.requireNonNull(articlesToAdd, "文章集合不能为null"); for (Article article : articlesToAdd) { Objects.requireNonNull(article, "集合中包含null文章"); articles.add(article); } } /** * 获取所有文章的不可变视图 */ public List
getAll() { return Collections.unmodifiableList(articles); } /** * 根据标题查找文章 */ public Article findByTitle(String title) { Objects.requireNonNull(title, "标题不能为null"); return articles.stream() .filter(a -> title.equals(a.getTitle())) .findFirst() .orElse(null); } /** * 获取文章数量 */ public int count() { return articles.size(); } /** * 清空所有文章 */ public void clear() { articles.clear(); } /** * 检查是否包含指定文章 */ public boolean contains(Article article) { Objects.requireNonNull(article, "文章不能为null"); return articles.contains(article); } }