for (String name : likedBy) { String likedUser= name.trim(); Set likes = likesMap.getOrDefault(likedUser, new HashSet<>()); Here you create a new Set for likes. This is in the iteration over the likers though so it results in many missing entries. [ How do i Fix this ] import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class FacebookLikeManager { private Map> likesMap; public FacebookLikeManager() { likesMap = new HashMap<>(); } public void buildMap(String filePath) { try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line = reader.readLine(); while (line != null) { String[] lineWords = line.split(":"); String user = lineWords[0].trim(); String[] likedBy = lineWords[1].split(","); for (String name : likedBy) { String likedUser= name.trim(); Set likes = likesMap.getOrDefault(likedUser, new HashSet<>()); likes.add(user); likesMap.put(likedUser, likes); } line = reader.readLine(); } } catch (IOException ex) { System.err.format("IOException: %s%n", ex); } } public List getAllUsers() { return new ArrayList<>(likesMap.keySet()); } public List getLikes(String user) { Set liked = likesMap.get(user); if (liked == null) { liked = new HashSet<>(); } return new ArrayList<>(liked); } public List getLikedBy(String user) { List likedBy = new ArrayList<>(); for (Map.Entry> post : likesMap.entrySet()) {
for (String name : likedBy) { String likedUser= name.trim(); Set likes = likesMap.getOrDefault(likedUser, new HashSet<>()); Here you create a new Set for likes. This is in the iteration over the likers though so it results in many missing entries. [ How do i Fix this ] import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class FacebookLikeManager { private Map> likesMap; public FacebookLikeManager() { likesMap = new HashMap<>(); } public void buildMap(String filePath) { try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line = reader.readLine(); while (line != null) { String[] lineWords = line.split(":"); String user = lineWords[0].trim(); String[] likedBy = lineWords[1].split(","); for (String name : likedBy) { String likedUser= name.trim(); Set likes = likesMap.getOrDefault(likedUser, new HashSet<>()); likes.add(user); likesMap.put(likedUser, likes); } line = reader.readLine(); } } catch (IOException ex) { System.err.format("IOException: %s%n", ex); } } public List getAllUsers() { return new ArrayList<>(likesMap.keySet()); } public List getLikes(String user) { Set liked = likesMap.get(user); if (liked == null) { liked = new HashSet<>(); } return new ArrayList<>(liked); } public List getLikedBy(String user) { List likedBy = new ArrayList<>(); for (Map.Entry> post : likesMap.entrySet()) {
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Question
for (String name : likedBy) {
String likedUser= name.trim();
Set<String> likes = likesMap.getOrDefault(likedUser, new HashSet<>());
Here you create a new Set for likes. This is in the iteration over the likers though so it results in many missing entries. [ How do i Fix this ]
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class FacebookLikeManager {
private Map<String, Set<String>> likesMap;
public FacebookLikeManager() {
likesMap = new HashMap<>();
}
public void buildMap(String filePath) {
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line = reader.readLine();
while (line != null) {
String[] lineWords = line.split(":");
String user = lineWords[0].trim();
String[] likedBy = lineWords[1].split(",");
for (String name : likedBy) {
String likedUser= name.trim();
Set<String> likes = likesMap.getOrDefault(likedUser, new HashSet<>());
likes.add(user);
likesMap.put(likedUser, likes);
}
line = reader.readLine();
}
} catch (IOException ex) {
System.err.format("IOException: %s%n", ex);
}
}
public List<String> getAllUsers() {
return new ArrayList<>(likesMap.keySet());
}
public List<String> getLikes(String user) {
Set<String> liked = likesMap.get(user);
if (liked == null) {
liked = new HashSet<>();
}
return new ArrayList<>(liked);
}
public List<String> getLikedBy(String user) {
List<String> likedBy = new ArrayList<>();
for (Map.Entry<String, Set<String>> post : likesMap.entrySet()) {
if (post.getValue().contains(user)) {
likedBy.add(post.getKey());
}
}
return likedBy;
}
}
public class Main {
public static void main(String[] args) {
FacebookLikeManager main = new FacebookLikeManager();
main.buildMap(args[0]);
System.out.println(main.getAllUsers());
System.out.println(main.getLikes("Kristen"));
System.out.println(main.getLikedBy("Sara"));
}
}
Mike: Kristen, Sara, Nate, Anthony, Randy
Kristen: Mike, John, Steve, Bill
Bill: Sara, Nate
Sara: Nate, Anthony
Kristen: Mike, John, Steve, Bill
Bill: Sara, Nate
Sara: Nate, Anthony
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 3 steps with 2 images

Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON

Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education