Упражнения за извънаудиторна заетост

Задача 1

Да се дефинира клас Article, който описва статия в блог.

Класът трябва да съдържа:

  • title от тип String;
  • author от тип String;
  • editor от тип String;
  • comments от тип List<String>;
  • editorsHistory от тип List<String>.

Да се дефинират конструктор и методи за четене. Да се дефинират методи:

  • addComment(String comment);
  • edit(String editor, String newTitle);
  • getCommentsCount();
  • getEditsCount().

Методът edit трябва да променя заглавието и да записва името на редактора в editorsHistory. Ако авторът и редакторът са един и същ човек, редакцията не трябва да се брои като външна редакция.

Задача 2

Да се дефинира клас Blog, който управлява статии чрез колекция.

Класът трябва да съдържа статична колекция:

private static List<Article> articles;

Да се реализират следните статични методи:

  • addArticle(Article article);
  • editArticle(String title, String editor, String newTitle);
  • findAuthorWithMostComments();
  • findAuthorWithMostArticles();
  • findEditorWithMostEdits();
  • printArticles().

Да се използват подходящи обхождания на колекцията. Когато се търси автор или редактор с най-голям брой срещания, резултатът трябва да се изчислява от данните в колекцията, а не да се задава ръчно.

Задача 3

Да се създаде примерна програма, която:

  • създава поне пет статии от поне трима автори;
  • добавя различен брой коментари към статиите;
  • редактира част от статиите от различни редактори;
  • извежда всички статии;
  • извежда автора с най-много коментари;
  • извежда автора с най-много статии;
  • извежда редактора с най-много редакции.

Да се избере подходяща колекция за всяка операция. При нужда може да се използва ArrayList, HashMap или друга изучена колекция.


This site uses Just the Docs, a documentation theme for Jekyll.