С текущей структурой HashMap, нет способа получить сообщения для userId
, но с помощью итерации всей карты и сравнения каждого значения userId
.
Если вы хотите найти все сообщенияотносящиеся к конкретному UserId
эффективно без циклического прохождения через HashMap, тогда вам придется изменить структуру самого HashMap и не зависеть от postId
, сгенерированного базой данных в качестве ключа hashMap.Вместо этого вы должны использовать userId
в качестве ключа HashMap:
HashMap<String, ArrayList<Post>> posts = new HashMap<>();
Вставка:
public void addPost(String userId, Post newPost) {
ArrayList<Post> postsForUserId = posts.get(userId);
postsForUserId.add(newPost);
}
Получение:
public ArrayList<Post> getPosts(String userId) {
return posts.get(userId);
}