Упражнения за извънаудиторна заетост
Задача 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 или друга изучена колекция.