From 2ebbe310180a693221f63a5a093b1e383044b450 Mon Sep 17 00:00:00 2001 From: Kate <119519512+Youta-Joy@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:57:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Solution.java" | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git "a/src/com/school/faang/hashmap/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" "b/src/com/school/faang/hashmap/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" index 57b651f..3bee3b3 100644 --- "a/src/com/school/faang/hashmap/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" +++ "b/src/com/school/faang/hashmap/\320\267\320\260\320\264\320\260\321\207\320\260_6/Solution.java" @@ -1,7 +1,101 @@ package com.school.faang.hashmap.задача_6; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + public class Solution { public static void main(String[] args) { + List tweets = new ArrayList<>(); + + tweets.add(new Tweet("@anna", List.of("#java", "#programming"))); + tweets.add(new Tweet("@ivan", List.of("#java"))); + tweets.add(new Tweet("@anna", List.of("#java"))); + tweets.add(new Tweet("@anna", List.of("#java", "#programming","#sql"))); + tweets.add(new Tweet("@ivan", List.of("#programming", "java"))); + tweets.add(new Tweet("@ivan", List.of("#java", "#programming"))); + + Tweet tweet = new Tweet(); + + Map topAuthors = tweet.findTopAuthors(tweets); + + for (Map.Entry entry : topAuthors.entrySet()) { + String hashtag = entry.getKey(); + String author = entry.getValue(); + + System.out.println("Больше постов с хештегом " + hashtag + " написал " + author); + } + } +} + +class Tweet { + private String author; + private List hashtags; + + public Tweet (String author, List hashtags) { + this.author = author; + this.hashtags = hashtags; + } + + public Tweet () {} + + private String getAuthor() { + return author; + } + + private List getHashtags() { + return hashtags; + } + + public Map findTopAuthors(List tweets) { + Map topAuthors = new HashMap<>(); + + Map> authorsHashtagCounter = authorsHashtagCounter(tweets); + + for (Map.Entry> entry : authorsHashtagCounter.entrySet()) { + String hashtag = entry.getKey(); + Map authorsHashtagsCounter = entry.getValue(); + + int maxTweet = 0; + String topAuthorName = ""; + + for (Map.Entry innerEntry : authorsHashtagsCounter.entrySet()) { + + String authorName = innerEntry.getKey(); + int tweetCount = innerEntry.getValue(); + + if (tweetCount > maxTweet) { + maxTweet = tweetCount; + topAuthorName = authorName; + } + } + + topAuthors.put(hashtag, topAuthorName); + } + + return topAuthors; + } + + private Map> authorsHashtagCounter(List tweets) { + Map> hashtagsCounter = new HashMap<>(); + + for (Tweet tweet : tweets) { + String name = tweet.getAuthor(); + + for (String hashtag : tweet.getHashtags()) { + Map hashtagFrequency = hashtagsCounter.get(hashtag); + + if (hashtagsCounter.containsKey(hashtag)) { + hashtagFrequency.put(name, hashtagFrequency.getOrDefault(name, 0) + 1); + }else { + hashtagFrequency = new HashMap<>(); + hashtagFrequency.put(name, 1); + hashtagsCounter.put(hashtag, hashtagFrequency); + } + } + } + return hashtagsCounter; } }