2 changed files with 113 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||||
|
package com.rental.crawler.repository; |
||||
|
|
||||
|
import com.rental.crawler.model.Book; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
public class ArticleRepository { |
||||
|
private List<Book> articles; |
||||
|
|
||||
|
public ArticleRepository() { |
||||
|
this.articles = new ArrayList<>(); |
||||
|
} |
||||
|
|
||||
|
public ArticleRepository(List<Book> articles) { |
||||
|
this.articles = articles != null ? new ArrayList<>(articles) : new ArrayList<>(); |
||||
|
} |
||||
|
|
||||
|
public void add(Book article) { |
||||
|
if (article != null) { |
||||
|
this.articles.add(article); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public void addAll(List<Book> newArticles) { |
||||
|
if (newArticles == null) { |
||||
|
return; |
||||
|
} |
||||
|
for (Book article : newArticles) { |
||||
|
if (article != null) { |
||||
|
this.articles.add(article); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public List<Book> findAll() { |
||||
|
return new ArrayList<>(this.articles); |
||||
|
} |
||||
|
|
||||
|
public Book findByIndex(int index) { |
||||
|
if (index >= 0 && index < this.articles.size()) { |
||||
|
return this.articles.get(index); |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
public int size() { |
||||
|
return this.articles.size(); |
||||
|
} |
||||
|
|
||||
|
public void clear() { |
||||
|
this.articles.clear(); |
||||
|
} |
||||
|
|
||||
|
public boolean isEmpty() { |
||||
|
return this.articles.isEmpty(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,56 @@ |
|||||
|
package com.rental.crawler; |
||||
|
|
||||
|
import com.rental.crawler.command.AnalyzeCommand; |
||||
|
import com.rental.crawler.model.Book; |
||||
|
import com.rental.crawler.repository.ArticleRepository; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
public class Main { |
||||
|
public static void main(String[] args) { |
||||
|
System.out.println("========== 测试 ArticleRepository addAll =========="); |
||||
|
ArticleRepository repository = new ArticleRepository(); |
||||
|
|
||||
|
List<Book> books1 = new ArrayList<>(); |
||||
|
books1.add(createBook("书1", "作者1", "出版社A", 8.5)); |
||||
|
books1.add(createBook("书2", "作者2", "出版社B", 7.5)); |
||||
|
books1.add(null); |
||||
|
repository.addAll(books1); |
||||
|
System.out.println("添加book1后的数量: " + repository.size()); |
||||
|
|
||||
|
List<Book> books2 = null; |
||||
|
repository.addAll(books2); |
||||
|
System.out.println("添加null后的数量: " + repository.size()); |
||||
|
|
||||
|
repository.add(null); |
||||
|
System.out.println("添加单个null后的数量: " + repository.size()); |
||||
|
|
||||
|
List<Book> books3 = new ArrayList<>(); |
||||
|
books3.add(null); |
||||
|
books3.add(createBook("书3", "作者3", "出版社C", 9.0)); |
||||
|
repository.addAll(books3); |
||||
|
System.out.println("添加包含null的列表后的数量: " + repository.size()); |
||||
|
|
||||
|
System.out.println("\n========== 测试 AnalyzeCommand =========="); |
||||
|
List<Book> testBooks = new ArrayList<>(); |
||||
|
testBooks.add(createBook("红楼梦", "曹雪芹", "人民文学出版社", 9.0)); |
||||
|
testBooks.add(createBook("水浒传", "施耐庵", "上海译文出版社", 8.5)); |
||||
|
testBooks.add(createBook("书3", "作者3", "未知出版社", 6.5)); |
||||
|
testBooks.add(null); |
||||
|
|
||||
|
AnalyzeCommand analyzeCommand = new AnalyzeCommand(); |
||||
|
analyzeCommand.execute(testBooks); |
||||
|
|
||||
|
System.out.println("\n测试完成!"); |
||||
|
} |
||||
|
|
||||
|
private static Book createBook(String title, String author, String publisher, double rating) { |
||||
|
Book book = new Book(); |
||||
|
book.setTitle(title); |
||||
|
book.setAuthors(author); |
||||
|
book.setPublisher(publisher); |
||||
|
book.setRating(rating); |
||||
|
return book; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue